diff --git a/configure/os/CONFIG.win32-x86.win32-x86 b/configure/os/CONFIG.win32-x86.win32-x86 index 29c15d3be..615332f19 100644 --- a/configure/os/CONFIG.win32-x86.win32-x86 +++ b/configure/os/CONFIG.win32-x86.win32-x86 @@ -136,6 +136,16 @@ STATIC_LDLIBS_NO= STATIC_LDFLAGS= RANLIB= +# +# option needed for parallel builds with Visual Studio 2015 onward +# +# -FS Force Synchronous PDB Writes +ifneq ($(VisualStudioVersion),) + OPT_CXXFLAGS_NO += -FS + OPT_CFLAGS_NO += -FS +endif + + # # add -profile here to run the ms profiler # -LTCG whole program optimization diff --git a/src/ca/client/access.cpp b/src/ca/client/access.cpp index 8c1f9901e..a36899c02 100644 --- a/src/ca/client/access.cpp +++ b/src/ca/client/access.cpp @@ -127,21 +127,10 @@ const char * ca_message_text [] static epicsThreadOnceId caClientContextIdOnce = EPICS_THREAD_ONCE_INIT; -extern "C" void ca_client_exit_handler (void *) -{ - if ( caClientContextId ) { - epicsThreadPrivateDelete ( caClientContextId ); - caClientContextId = 0; - } -} - // runs once only for each process extern "C" void ca_init_client_context ( void * ) { caClientContextId = epicsThreadPrivateCreate (); - if ( caClientContextId ) { - epicsAtExit ( ca_client_exit_handler,0 ); - } } /* diff --git a/src/ioc/rsrv/online_notify.c b/src/ioc/rsrv/online_notify.c index b2547c464..6b6157370 100644 --- a/src/ioc/rsrv/online_notify.c +++ b/src/ioc/rsrv/online_notify.c @@ -45,7 +45,6 @@ void rsrv_online_notify_task(void *pParm) caHdr msg; int status; ca_uint32_t beaconCounter = 0; - char buf[16]; taskwdInsert (epicsThreadGetIdSelf(),NULL,NULL); @@ -85,10 +84,12 @@ void rsrv_online_notify_task(void *pParm) &pAddr->addr.sa, sizeof(pAddr->addr)); if (status < 0) { char sockErrBuf[64]; - epicsSocketConvertErrnoToString ( sockErrBuf, sizeof ( sockErrBuf ) ); - ipAddrToDottedIP (&pAddr->addr.ia, buf, sizeof(buf)); + char sockDipBuf[22]; + + epicsSocketConvertErrnoToString(sockErrBuf, sizeof(sockErrBuf)); + ipAddrToDottedIP(&pAddr->addr.ia, sockDipBuf, sizeof(sockDipBuf)); errlogPrintf ( "CAS: CA beacon send to %s error: %s\n", - buf, sockErrBuf); + sockDipBuf, sockErrBuf); } else { assert (status == sizeof(msg)); diff --git a/src/libCom/osi/epicsGeneralTime.c b/src/libCom/osi/epicsGeneralTime.c index ca3317ee3..3054175ef 100644 --- a/src/libCom/osi/epicsGeneralTime.c +++ b/src/libCom/osi/epicsGeneralTime.c @@ -270,7 +270,7 @@ static int generalTimeGetEventPriority(epicsTimeStamp *pDest, int eventNumber, } } } else { - if (epicsTimeGreaterThanEqual(pDest, + if (epicsTimeGreaterThanEqual(&ts, >Pvt.eventTime[eventNumber])) { *pDest = ts; gtPvt.eventTime[eventNumber] = ts; @@ -281,7 +281,6 @@ static int generalTimeGetEventPriority(epicsTimeStamp *pDest, int eventNumber, key = epicsInterruptLock(); gtPvt.ErrorCounts++; epicsInterruptUnlock(key); - } IFDEBUG(10) { char last[40], buff[40]; @@ -293,6 +292,7 @@ static int generalTimeGetEventPriority(epicsTimeStamp *pDest, int eventNumber, " %s, using %s instead\n", ptp->name, buff, last); } + } } break; }