osi => epics name change to accomodate aps
This commit is contained in:
+6
-6
@@ -44,7 +44,7 @@
|
||||
#include "tsFreeList.h"
|
||||
#include "tsDLList.h"
|
||||
#include "osiSock.h"
|
||||
#include "osiSem.h"
|
||||
#include "epicsEvent.h"
|
||||
#include "osiThread.h"
|
||||
#include "osiTimer.h"
|
||||
#include "epicsMutex.h"
|
||||
@@ -611,7 +611,7 @@ private:
|
||||
char recvBuf [MAX_UDP_RECV];
|
||||
ELLLIST dest;
|
||||
threadId recvThreadId;
|
||||
semBinaryId recvThreadExitSignal;
|
||||
epicsEventId recvThreadExitSignal;
|
||||
unsigned nBytesInXmitBuf;
|
||||
SOCKET sock;
|
||||
unsigned short repeaterPort;
|
||||
@@ -773,10 +773,10 @@ private:
|
||||
void *pCurData;
|
||||
unsigned minorProtocolVersion;
|
||||
iiu_conn_state state;
|
||||
semBinaryId sendThreadFlushSignal;
|
||||
semBinaryId recvThreadRingBufferSpaceAvailableSignal;
|
||||
semBinaryId sendThreadExitSignal;
|
||||
semBinaryId recvThreadExitSignal;
|
||||
epicsEventId sendThreadFlushSignal;
|
||||
epicsEventId recvThreadRingBufferSpaceAvailableSignal;
|
||||
epicsEventId sendThreadExitSignal;
|
||||
epicsEventId recvThreadExitSignal;
|
||||
SOCKET sock;
|
||||
unsigned contigRecvMsgCount;
|
||||
bool fullyConstructedFlag;
|
||||
|
||||
+36
-36
@@ -98,7 +98,7 @@ extern "C" void cacSendThreadTCP ( void *pParam )
|
||||
|
||||
while ( true ) {
|
||||
|
||||
semBinaryMustTake ( piiu->sendThreadFlushSignal );
|
||||
epicsEventMustWait ( piiu->sendThreadFlushSignal );
|
||||
|
||||
if ( piiu->state != iiu_connected ) {
|
||||
break;
|
||||
@@ -160,7 +160,7 @@ extern "C" void cacSendThreadTCP ( void *pParam )
|
||||
}
|
||||
}
|
||||
|
||||
semBinaryGive ( piiu->sendThreadExitSignal );
|
||||
epicsEventSignal ( piiu->sendThreadExitSignal );
|
||||
}
|
||||
|
||||
unsigned tcpiiu::sendBytes ( const void *pBuf,
|
||||
@@ -313,15 +313,15 @@ extern "C" void cacRecvThreadTCP ( void *pParam )
|
||||
tid = threadCreate ( "CAC-TCP-send", priorityOfSend,
|
||||
threadGetStackSize ( threadStackMedium ), cacSendThreadTCP, piiu );
|
||||
if ( ! tid ) {
|
||||
semBinaryGive ( piiu->recvThreadExitSignal );
|
||||
semBinaryGive ( piiu->sendThreadExitSignal );
|
||||
epicsEventSignal ( piiu->recvThreadExitSignal );
|
||||
epicsEventSignal ( piiu->sendThreadExitSignal );
|
||||
piiu->cleanShutdown ();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
semBinaryGive ( piiu->recvThreadExitSignal );
|
||||
semBinaryGive ( piiu->sendThreadExitSignal );
|
||||
epicsEventSignal ( piiu->recvThreadExitSignal );
|
||||
epicsEventSignal ( piiu->sendThreadExitSignal );
|
||||
piiu->cleanShutdown ();
|
||||
return;
|
||||
}
|
||||
@@ -334,7 +334,7 @@ extern "C" void cacRecvThreadTCP ( void *pParam )
|
||||
nBytes = piiu->recvQue.occupiedBytes ();
|
||||
}
|
||||
if ( nBytes >= 0x4000 ) {
|
||||
semBinaryMustTake ( piiu->recvThreadRingBufferSpaceAvailableSignal );
|
||||
epicsEventMustWait ( piiu->recvThreadRingBufferSpaceAvailableSignal );
|
||||
}
|
||||
else {
|
||||
comBuf * pComBuf = new comBuf;
|
||||
@@ -358,7 +358,7 @@ extern "C" void cacRecvThreadTCP ( void *pParam )
|
||||
}
|
||||
}
|
||||
|
||||
semBinaryGive ( piiu->recvThreadExitSignal );
|
||||
epicsEventSignal ( piiu->recvThreadExitSignal );
|
||||
}
|
||||
|
||||
//
|
||||
@@ -387,34 +387,34 @@ tcpiiu::tcpiiu ( cac &cac, double connectionTimeout, osiTimerQueue &timerQueue )
|
||||
{
|
||||
this->addr.sa.sa_family = AF_UNSPEC;
|
||||
|
||||
this->sendThreadExitSignal = semBinaryCreate (semEmpty);
|
||||
this->sendThreadExitSignal = epicsEventCreate ( epicsEventEmpty );
|
||||
if ( ! this->sendThreadExitSignal ) {
|
||||
ca_printf ("CA: unable to create CA client send thread exit semaphore\n");
|
||||
this->fullyConstructedFlag = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this->recvThreadExitSignal = semBinaryCreate (semEmpty);
|
||||
this->recvThreadExitSignal = epicsEventCreate ( epicsEventEmpty );
|
||||
if ( ! this->recvThreadExitSignal ) {
|
||||
ca_printf ("CA: unable to create CA client send thread exit semaphore\n");
|
||||
semBinaryDestroy (this->sendThreadExitSignal);
|
||||
epicsEventDestroy (this->sendThreadExitSignal);
|
||||
this->fullyConstructedFlag = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this->sendThreadFlushSignal = semBinaryCreate ( semEmpty );
|
||||
this->sendThreadFlushSignal = epicsEventCreate ( epicsEventEmpty );
|
||||
if ( ! this->sendThreadFlushSignal ) {
|
||||
ca_printf ("CA: unable to create sendThreadFlushSignal object\n");
|
||||
semBinaryDestroy (this->sendThreadExitSignal);
|
||||
epicsEventDestroy (this->sendThreadExitSignal);
|
||||
this->fullyConstructedFlag = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this->recvThreadRingBufferSpaceAvailableSignal = semBinaryCreate ( semEmpty );
|
||||
this->recvThreadRingBufferSpaceAvailableSignal = epicsEventCreate ( epicsEventEmpty );
|
||||
if ( ! this->recvThreadRingBufferSpaceAvailableSignal ) {
|
||||
ca_printf ("CA: unable to create recvThreadRingBufferSpaceAvailableSignal object\n");
|
||||
semBinaryDestroy (this->sendThreadExitSignal);
|
||||
semBinaryDestroy (this->sendThreadFlushSignal);
|
||||
epicsEventDestroy (this->sendThreadExitSignal);
|
||||
epicsEventDestroy (this->sendThreadFlushSignal);
|
||||
this->fullyConstructedFlag = false;
|
||||
return;
|
||||
}
|
||||
@@ -622,8 +622,8 @@ void tcpiiu::cleanShutdown ()
|
||||
this->state = iiu_disconnected;
|
||||
}
|
||||
}
|
||||
semBinaryGive ( this->sendThreadFlushSignal );
|
||||
semBinaryGive ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
epicsEventSignal ( this->sendThreadFlushSignal );
|
||||
epicsEventSignal ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
this->pCAC ()->signalRecvActivity ();
|
||||
}
|
||||
|
||||
@@ -661,8 +661,8 @@ void tcpiiu::forcedShutdown ()
|
||||
}
|
||||
}
|
||||
|
||||
semBinaryGive ( this->sendThreadFlushSignal );
|
||||
semBinaryGive ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
epicsEventSignal ( this->sendThreadFlushSignal );
|
||||
epicsEventSignal ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
this->pCAC ()->signalRecvActivity ();
|
||||
}
|
||||
|
||||
@@ -679,13 +679,13 @@ void tcpiiu::disconnect ()
|
||||
|
||||
// wait for send thread to exit
|
||||
static const double shutdownDelay = 15.0;
|
||||
semTakeStatus semStat;
|
||||
epicsEventWaitStatus semStat;
|
||||
while ( true ) {
|
||||
semStat = semBinaryTakeTimeout ( this->sendThreadExitSignal, shutdownDelay );
|
||||
if ( semStat == semTakeOK ) {
|
||||
semStat = epicsEventWaitWithTimeout ( this->sendThreadExitSignal, shutdownDelay );
|
||||
if ( semStat == epicsEventWaitOK ) {
|
||||
break;
|
||||
}
|
||||
assert ( semStat == semTakeTimeout );
|
||||
assert ( semStat == epicsEventWaitTimeout );
|
||||
if ( ! this->sockCloseCompleted ) {
|
||||
printf ( "Gave up waiting for \"shutdown()\" to force send thread to exit after %f sec\n",
|
||||
shutdownDelay);
|
||||
@@ -703,11 +703,11 @@ void tcpiiu::disconnect ()
|
||||
|
||||
// wait for recv thread to exit
|
||||
while ( true ) {
|
||||
semStat = semBinaryTakeTimeout ( this->recvThreadExitSignal, shutdownDelay );
|
||||
if ( semStat == semTakeOK ) {
|
||||
semStat = epicsEventWaitWithTimeout ( this->recvThreadExitSignal, shutdownDelay );
|
||||
if ( semStat == epicsEventWaitOK ) {
|
||||
break;
|
||||
}
|
||||
assert ( semStat == semTakeTimeout );
|
||||
assert ( semStat == epicsEventWaitTimeout );
|
||||
if ( ! this->sockCloseCompleted ) {
|
||||
printf ( "Gave up waiting for \"shutdown()\" to force receive thread to exit after %f sec\n",
|
||||
shutdownDelay);
|
||||
@@ -769,10 +769,10 @@ tcpiiu::~tcpiiu ()
|
||||
return;
|
||||
}
|
||||
|
||||
semBinaryDestroy ( this->sendThreadExitSignal );
|
||||
semBinaryDestroy ( this->recvThreadExitSignal );
|
||||
semBinaryDestroy ( this->sendThreadFlushSignal );
|
||||
semBinaryDestroy ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
epicsEventDestroy ( this->sendThreadExitSignal );
|
||||
epicsEventDestroy ( this->recvThreadExitSignal );
|
||||
epicsEventDestroy ( this->sendThreadFlushSignal );
|
||||
epicsEventDestroy ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
|
||||
if ( this->pHostNameCache ) {
|
||||
this->pHostNameCache->destroy ();
|
||||
@@ -855,13 +855,13 @@ void tcpiiu::show ( unsigned level ) const
|
||||
if ( level > 3u ) {
|
||||
printf ( "\tvirtual circuit socket identifier %d\n", this->sock );
|
||||
printf ( "\tsend thread flush signal:\n" );
|
||||
semBinaryShow ( this->sendThreadFlushSignal, level-3u );
|
||||
epicsEventShow ( this->sendThreadFlushSignal, level-3u );
|
||||
printf ( "\trecv thread buffer space available signal:\n" );
|
||||
semBinaryShow ( this->recvThreadRingBufferSpaceAvailableSignal, level-3u );
|
||||
epicsEventShow ( this->recvThreadRingBufferSpaceAvailableSignal, level-3u );
|
||||
printf ( "\tsend thread exit signal:\n" );
|
||||
semBinaryShow ( this->sendThreadExitSignal, level-3u );
|
||||
epicsEventShow ( this->sendThreadExitSignal, level-3u );
|
||||
printf ( "\trecv thread exit signal:\n" );
|
||||
semBinaryShow ( this->recvThreadExitSignal, level-3u );
|
||||
epicsEventShow ( this->recvThreadExitSignal, level-3u );
|
||||
printf ( "\tfully constructed bool %u\n", this->fullyConstructedFlag );
|
||||
printf ("\techo pending bool = %u\n", this->echoRequestPending );
|
||||
printf ("\tflush pending bool = %u\n", this->flushPending );
|
||||
@@ -1376,7 +1376,7 @@ void tcpiiu::processIncoming ()
|
||||
}
|
||||
}
|
||||
|
||||
semBinaryGive ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
epicsEventSignal ( this->recvThreadRingBufferSpaceAvailableSignal );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ inline void tcpiiu::flush ()
|
||||
epicsAutoMutex autoMutex ( this->mutex );
|
||||
this->flushPending = true;
|
||||
}
|
||||
semBinaryGive ( this->sendThreadFlushSignal );
|
||||
epicsEventSignal ( this->sendThreadFlushSignal );
|
||||
}
|
||||
|
||||
inline bool tcpiiu::ca_v44_ok () const
|
||||
|
||||
+6
-6
@@ -125,7 +125,7 @@ extern "C" void cacRecvThreadUDP (void *pParam)
|
||||
piiu->recvMsg ();
|
||||
} while ( ! piiu->shutdownCmd );
|
||||
|
||||
semBinaryGive ( piiu->recvThreadExitSignal );
|
||||
epicsEventSignal ( piiu->recvThreadExitSignal );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -395,7 +395,7 @@ udpiiu::udpiiu ( cac &cac ) :
|
||||
|
||||
this->nBytesInXmitBuf = 0u;
|
||||
|
||||
this->recvThreadExitSignal = semBinaryCreate ( semEmpty );
|
||||
this->recvThreadExitSignal = epicsEventMustCreate ( epicsEventEmpty );
|
||||
if ( ! this->recvThreadExitSignal ) {
|
||||
socket_close ( this->sock );
|
||||
throwWithLocation ( noMemory () );
|
||||
@@ -425,7 +425,7 @@ udpiiu::udpiiu ( cac &cac ) :
|
||||
threadGetStackSize (threadStackMedium), cacRecvThreadUDP, this );
|
||||
if ( this->recvThreadId == 0 ) {
|
||||
ca_printf ("CA: unable to create UDP receive thread\n");
|
||||
semBinaryDestroy (this->recvThreadExitSignal);
|
||||
epicsEventDestroy (this->recvThreadExitSignal);
|
||||
socket_close (this->sock);
|
||||
throwWithLocation ( noMemory () );
|
||||
}
|
||||
@@ -442,7 +442,7 @@ udpiiu::~udpiiu ()
|
||||
// closes the udp socket and waits for its recv thread to exit
|
||||
this->shutdown ();
|
||||
|
||||
semBinaryDestroy ( this->recvThreadExitSignal );
|
||||
epicsEventDestroy ( this->recvThreadExitSignal );
|
||||
|
||||
ellFree ( &this->dest );
|
||||
|
||||
@@ -510,7 +510,7 @@ void udpiiu::shutdown ()
|
||||
}
|
||||
}
|
||||
// wait for recv threads to exit
|
||||
semBinaryMustTake ( this->recvThreadExitSignal );
|
||||
epicsEventMustWait ( this->recvThreadExitSignal );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -846,7 +846,7 @@ void udpiiu::show ( unsigned level ) const
|
||||
printf ("\tbytes in xmit buffer %u\n", this->nBytesInXmitBuf );
|
||||
printf ("\tshut down command bool %u\n", this->shutdownCmd );
|
||||
printf ( "\trecv thread exit signal:\n" );
|
||||
semBinaryShow ( this->recvThreadExitSignal, level-3u );
|
||||
epicsEventShow ( this->recvThreadExitSignal, level-3u );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "dbDefs.h"
|
||||
#include "osiSem.h"
|
||||
#include "epicsEvent.h"
|
||||
#include "epicsMutex.h"
|
||||
#include "osiThread.h"
|
||||
#include "osiSock.h"
|
||||
#include "epicsAssert.h"
|
||||
@@ -70,15 +71,15 @@ typedef struct {
|
||||
ELLNODE node; /* must be the first field in struct */
|
||||
struct sockaddr_in addr;
|
||||
FILE *file;
|
||||
semMutexId mutex;
|
||||
epicsMutexId mutex;
|
||||
SOCKET sock;
|
||||
unsigned connectTries;
|
||||
unsigned connectCount;
|
||||
unsigned connectReset;
|
||||
}logClient;
|
||||
|
||||
LOCAL semMutexId logClientGlobalMutex;
|
||||
LOCAL semBinaryId logClientGlobalSignal;
|
||||
LOCAL epicsMutexId logClientGlobalMutex;
|
||||
LOCAL epicsEventId logClientGlobalSignal;
|
||||
LOCAL ELLLIST logClientList;
|
||||
LOCAL threadId logClientThreadId;
|
||||
LOCAL logClient *pLogClientDefaultClient;
|
||||
@@ -141,7 +142,7 @@ LOCAL void logClientReset (logClient *pClient)
|
||||
/*
|
||||
* mutex on
|
||||
*/
|
||||
semMutexMustTake (pClient->mutex);
|
||||
epicsMutexMustLock (pClient->mutex);
|
||||
|
||||
/*
|
||||
* close any preexisting connection to the log server
|
||||
@@ -168,12 +169,12 @@ LOCAL void logClientReset (logClient *pClient)
|
||||
/*
|
||||
* mutex off
|
||||
*/
|
||||
semMutexGive (pClient->mutex);
|
||||
epicsMutexUnlock (pClient->mutex);
|
||||
|
||||
/*
|
||||
* wake up the watchdog task
|
||||
*/
|
||||
semBinaryGive (logClientGlobalSignal);
|
||||
epicsEventSignal (logClientGlobalSignal);
|
||||
|
||||
# ifdef DEBUG
|
||||
fprintf (stderr, "done\n");
|
||||
@@ -189,11 +190,11 @@ LOCAL void logClientDestroy (logClient *pClient)
|
||||
/*
|
||||
* mutex on (and left on)
|
||||
*/
|
||||
semMutexMustTake (pClient->mutex);
|
||||
epicsMutexMustLock (pClient->mutex);
|
||||
|
||||
logClientReset (pClient);
|
||||
|
||||
semMutexDestroy (pClient->mutex);
|
||||
epicsMutexDestroy (pClient->mutex);
|
||||
|
||||
free (pClient);
|
||||
}
|
||||
@@ -212,11 +213,11 @@ LOCAL void logClientShutdown (void)
|
||||
*/
|
||||
# ifndef vxWorks
|
||||
logClient *pClient;
|
||||
semMutexMustTake (logClientGlobalMutex);
|
||||
epicsMutexMustLock (logClientGlobalMutex);
|
||||
while ( ( pClient = (logClient *) ellGet (&logClientList) ) ) {
|
||||
logClientDestroy (pClient);
|
||||
}
|
||||
semMutexGive (logClientGlobalMutex);
|
||||
epicsMutexUnlock (logClientGlobalMutex);
|
||||
# endif
|
||||
}
|
||||
|
||||
@@ -235,7 +236,7 @@ LOCAL void logClientSendMessageInternal (logClientId id, const char *message)
|
||||
/*
|
||||
* mutex on
|
||||
*/
|
||||
semMutexMustTake (pClient->mutex);
|
||||
epicsMutexMustLock (pClient->mutex);
|
||||
|
||||
if (pClient->file) {
|
||||
status = fprintf (pClient->file, "%s", message);
|
||||
@@ -252,7 +253,7 @@ LOCAL void logClientSendMessageInternal (logClientId id, const char *message)
|
||||
/*
|
||||
* mutex off
|
||||
*/
|
||||
semMutexGive (pClient->mutex);
|
||||
epicsMutexUnlock (pClient->mutex);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -277,7 +278,7 @@ LOCAL void logClientMakeSock (logClient *pClient)
|
||||
fprintf (stderr, "log client: creating socket...");
|
||||
# endif
|
||||
|
||||
semMutexMustTake (pClient->mutex);
|
||||
epicsMutexMustLock (pClient->mutex);
|
||||
|
||||
/*
|
||||
* allocate a socket
|
||||
@@ -286,7 +287,7 @@ LOCAL void logClientMakeSock (logClient *pClient)
|
||||
if (pClient->sock == INVALID_SOCKET){
|
||||
fprintf (stderr, "log client: no socket error %s\n",
|
||||
SOCKERRSTR(SOCKERRNO));
|
||||
semMutexGive (pClient->mutex);
|
||||
epicsMutexUnlock (pClient->mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -297,11 +298,11 @@ LOCAL void logClientMakeSock (logClient *pClient)
|
||||
__FILE__, __LINE__, SOCKERRSTR(SOCKERRNO));
|
||||
socket_close (pClient->sock);
|
||||
pClient->sock = INVALID_SOCKET;
|
||||
semMutexGive (pClient->mutex);
|
||||
epicsMutexUnlock (pClient->mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
semMutexGive (pClient->mutex);
|
||||
epicsMutexUnlock (pClient->mutex);
|
||||
|
||||
# ifdef DEBUG
|
||||
fprintf (stderr, "done\n");
|
||||
@@ -436,9 +437,9 @@ LOCAL void logClientConnect (logClient *pClient)
|
||||
*/
|
||||
LOCAL void logRestart (void *pPrivate)
|
||||
{
|
||||
semTakeStatus semStatus;
|
||||
logClient *pClient;
|
||||
unsigned ioPending;
|
||||
epicsEventWaitStatus semStatus;
|
||||
logClient *pClient;
|
||||
unsigned ioPending;
|
||||
|
||||
/*
|
||||
* roll the local port forward so that we dont collide
|
||||
@@ -451,10 +452,10 @@ LOCAL void logRestart (void *pPrivate)
|
||||
while (1) {
|
||||
ioPending = 0;
|
||||
|
||||
semStatus = semBinaryTakeTimeout (logClientGlobalSignal, LOG_RESTART_DELAY);
|
||||
assert ( semStatus==semTakeOK || semStatus==semTakeTimeout );
|
||||
semStatus = epicsEventWaitWithTimeout (logClientGlobalSignal, LOG_RESTART_DELAY);
|
||||
assert ( semStatus==epicsEventWaitOK || semStatus==epicsEventWaitTimeout );
|
||||
|
||||
semMutexMustTake (logClientGlobalMutex);
|
||||
epicsMutexMustLock (logClientGlobalMutex);
|
||||
for ( pClient = (logClient *) ellFirst (&logClientList); pClient;
|
||||
pClient = (logClient *) ellNext(&pClient->node) ) {
|
||||
|
||||
@@ -485,7 +486,7 @@ LOCAL void logRestart (void *pPrivate)
|
||||
logClientReset (pClient);
|
||||
}
|
||||
}
|
||||
semMutexGive (logClientGlobalMutex);
|
||||
epicsMutexUnlock (logClientGlobalMutex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,29 +497,28 @@ LOCAL void logClientGlobalInit ()
|
||||
{
|
||||
static const unsigned logRestartStackSize = 0x2000;
|
||||
|
||||
logClientGlobalMutex = semMutexCreate ();
|
||||
logClientGlobalMutex = epicsMutexCreate ();
|
||||
if (!logClientGlobalMutex) {
|
||||
fprintf(stderr, "log client: Unable to create log client global mutex\n");
|
||||
return;
|
||||
}
|
||||
|
||||
semMutexMustTake (logClientGlobalMutex);
|
||||
epicsMutexMustLock (logClientGlobalMutex);
|
||||
ellInit (&logClientList);
|
||||
|
||||
logClientGlobalSignal = semBinaryCreate (0);
|
||||
logClientGlobalSignal = epicsEventCreate (0);
|
||||
if(!logClientGlobalSignal){
|
||||
semMutexDestroy (logClientGlobalMutex);
|
||||
epicsMutexDestroy (logClientGlobalMutex);
|
||||
logClientGlobalMutex = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
logClientThreadId = threadCreate ("logRestart", threadPriorityLow,
|
||||
logRestartStackSize, logRestart, 0);
|
||||
if (logClientThreadId==NULL) {
|
||||
semMutexDestroy (logClientGlobalMutex);
|
||||
epicsMutexDestroy (logClientGlobalMutex);
|
||||
logClientGlobalMutex = NULL;
|
||||
semMutexDestroy (logClientGlobalSignal);
|
||||
epicsMutexDestroy (logClientGlobalSignal);
|
||||
logClientGlobalSignal = NULL;
|
||||
fprintf(stderr, "log client: unable to start log client connection watch dog thread\n");
|
||||
return;
|
||||
@@ -535,7 +535,7 @@ LOCAL void logClientGlobalInit ()
|
||||
# else
|
||||
atexit (logClientShutdown);
|
||||
# endif
|
||||
semMutexGive (logClientGlobalMutex);
|
||||
epicsMutexUnlock (logClientGlobalMutex);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -570,7 +570,7 @@ epicsShareFunc logClientId epicsShareAPI logClientInit ()
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pClient->mutex = semMutexCreate ();
|
||||
pClient->mutex = epicsMutexCreate ();
|
||||
if (!pClient->mutex) {
|
||||
free (pClient);
|
||||
return NULL;
|
||||
@@ -579,16 +579,16 @@ epicsShareFunc logClientId epicsShareAPI logClientInit ()
|
||||
pClient->sock = INVALID_SOCKET;
|
||||
pClient->file = NULL;
|
||||
|
||||
semMutexMustTake (logClientGlobalMutex);
|
||||
epicsMutexMustLock (logClientGlobalMutex);
|
||||
ellAdd (&logClientList, &pClient->node);
|
||||
semMutexGive (logClientGlobalMutex);
|
||||
epicsMutexUnlock (logClientGlobalMutex);
|
||||
|
||||
/*
|
||||
* attempt to block for the connect
|
||||
*/
|
||||
while (pClient->file==NULL) {
|
||||
|
||||
semBinaryGive (logClientGlobalSignal);
|
||||
epicsEventSignal (logClientGlobalSignal);
|
||||
|
||||
threadSleep (50e-3);
|
||||
|
||||
@@ -596,9 +596,9 @@ epicsShareFunc logClientId epicsShareAPI logClientInit ()
|
||||
if (connectTries>=maxConnectTries) {
|
||||
char name[64];
|
||||
|
||||
semMutexMustTake (logClientGlobalMutex);
|
||||
epicsMutexMustLock (logClientGlobalMutex);
|
||||
ipAddrToDottedIP (&pClient->addr, name, sizeof(name));
|
||||
semMutexGive (logClientGlobalMutex);
|
||||
epicsMutexUnlock (logClientGlobalMutex);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "osiThread.h"
|
||||
#include "osiSem.h"
|
||||
#include "epicsEvent.h"
|
||||
#include "osiSock.h"
|
||||
#include "epicsAssert.h"
|
||||
#include "errlog.h"
|
||||
@@ -45,21 +45,21 @@
|
||||
/*
|
||||
* Protect some routines which are not thread-safe
|
||||
*/
|
||||
static semMutexId infoMutex;
|
||||
static epicsMutexId infoMutex;
|
||||
static void createInfoMutex (void *unused)
|
||||
{
|
||||
infoMutex = semMutexMustCreate ();
|
||||
infoMutex = epicsMutexMustCreate ();
|
||||
}
|
||||
static void lockInfo (void)
|
||||
{
|
||||
static threadOnceId infoMutexOnceFlag = OSITHREAD_ONCE_INIT;
|
||||
|
||||
threadOnce (&infoMutexOnceFlag, createInfoMutex, NULL);
|
||||
semMutexMustTake (infoMutex);
|
||||
epicsMutexMustLock (infoMutex);
|
||||
}
|
||||
static void unlockInfo (void)
|
||||
{
|
||||
semMutexGive (infoMutex);
|
||||
epicsMutexUnlock (infoMutex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -8,7 +8,6 @@ extern "C" {
|
||||
#include <stddef.h>
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "osiSem.h"
|
||||
|
||||
typedef void (*THREADFUNC)(void *parm);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ of this distribution.
|
||||
#include "osiThread.h"
|
||||
#include "epicsRingPointer.h"
|
||||
#include "errlog.h"
|
||||
#include "osiSem.h"
|
||||
|
||||
#define ringSize 10
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ of this distribution.
|
||||
#include "osiThread.h"
|
||||
#include "epicsRingPointer.h"
|
||||
#include "errlog.h"
|
||||
#include "osiSem.h"
|
||||
|
||||
|
||||
typedef struct info {
|
||||
|
||||
@@ -18,7 +18,7 @@ of this distribution.
|
||||
|
||||
#include "osiThread.h"
|
||||
#include "errlog.h"
|
||||
|
||||
#include "osiSem.h"
|
||||
|
||||
typedef struct info {
|
||||
int threadnum;
|
||||
|
||||
Reference in New Issue
Block a user