interrupted system call interface

This commit is contained in:
Jeff Hill
2002-10-23 22:17:11 +00:00
parent 2074b99342
commit 1af30b1d48
2 changed files with 22 additions and 0 deletions
+12
View File
@@ -21,6 +21,7 @@
#define epicsExportSharedSymbols
#include "epicsAssert.h"
#include "epicsSignal.h"
#include "osiSock.h"
#define nDigitsDottedIP 4u
@@ -167,3 +168,14 @@ void epicsShareAPI ipAddrToDottedIP
}
}
epicsShareFunc void epicsShareAPI epicsSocketEnableInterruptedSystemCall ()
{
epicsSignalInstallSigUrgIgnore ();
}
epicsShareFunc void epicsShareAPI epicsSocketInterruptSystemCall
( struct epicsThreadOSD * threadId )
{
epicsSignalRaiseSigUrg ( threadId );
}
+10
View File
@@ -166,6 +166,16 @@ epicsShareFunc void epicsShareAPI osiSockDiscoverBroadcastAddresses
*/
epicsShareFunc osiSockAddr epicsShareAPI osiLocalAddr (SOCKET socket);
/*
* Certain os, such as HPUX, do not unblock a socket system call
* when another thread asynchronously calls both shutdown() and
* close(). To solve this problem we need to employ OS specific
* mechanisms.
*/
epicsShareFunc void epicsShareAPI epicsSocketEnableInterruptedSystemCall ();
epicsShareFunc void epicsShareAPI epicsSocketInterruptSystemCall ( struct epicsThreadOSD * );
#ifdef __cplusplus
}
#endif