diff --git a/src/libCom/cxxTemplates/epicsSingletonMutex.cpp b/src/libCom/cxxTemplates/epicsSingletonMutex.cpp index 9643a1dde..02d5d63c1 100644 --- a/src/libCom/cxxTemplates/epicsSingletonMutex.cpp +++ b/src/libCom/cxxTemplates/epicsSingletonMutex.cpp @@ -52,9 +52,9 @@ void SingletonUntyped :: incrRefCount ( PBuild pBuild ) void SingletonUntyped :: decrRefCount ( PDestroy pDestroy ) { - assert ( _refCount > 0 ); epicsGuard < epicsMutex > guard ( *pEPICSSigletonMutex ); + assert ( _refCount > 0 ); _refCount--; if ( _refCount == 0 ) { ( *pDestroy ) ( _pInstance ); diff --git a/src/libCom/freeList/freeListLib.c b/src/libCom/freeList/freeListLib.c index 3ddd1331c..5e07ba9c3 100644 --- a/src/libCom/freeList/freeListLib.c +++ b/src/libCom/freeList/freeListLib.c @@ -148,6 +148,10 @@ epicsShareFunc void epicsShareAPI freeListCleanup(void *pvt) epicsShareFunc size_t epicsShareAPI freeListItemsAvail(void *pvt) { FREELISTPVT *pfl = pvt; - return pfl->nBlocksAvailable; + size_t nBlocksAvailable; + epicsMutexMustLock(pfl->lock); + nBlocksAvailable = pfl->nBlocksAvailable; + epicsMutexUnlock(pfl->lock); + return nBlocksAvailable; } diff --git a/src/libCom/test/epicsExceptionTest.cpp b/src/libCom/test/epicsExceptionTest.cpp index b40ceb0dc..d6c3ecd9b 100644 --- a/src/libCom/test/epicsExceptionTest.cpp +++ b/src/libCom/test/epicsExceptionTest.cpp @@ -29,7 +29,9 @@ using namespace std; #if defined ( _MSC_VER ) // some interesting bugs found in the MS implementation of new -# if _MSC_VER > 1310 /* this gets fixed some release after visual studio 7 we hope */ +# if _MSC_VER >= 1900 + static size_t unsuccessfulNewSize = numeric_limits < size_t > :: max (); +# elif _MSC_VER > 1310 /* this gets fixed some release after visual studio 7 we hope */ static const size_t unsuccessfulNewSize = numeric_limits < size_t > :: max (); # else static const size_t unsuccessfulNewSize = numeric_limits < size_t > :: max () - 100; diff --git a/src/libCom/timer/epicsTimer.cpp b/src/libCom/timer/epicsTimer.cpp index 0fb8bacba..35fdaf9db 100644 --- a/src/libCom/timer/epicsTimer.cpp +++ b/src/libCom/timer/epicsTimer.cpp @@ -1,11 +1,10 @@ /*************************************************************************\ -* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* Copyright (c) 2015 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. -* EPICS BASE Versions 3.13.7 -* and higher are distributed subject to a Software License Agreement found -* in file LICENSE that is included with this distribution. +* EPICS BASE is distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. \*************************************************************************/ /* * $Revision-Id$ @@ -70,6 +69,7 @@ epicsTimerQueueActiveForC :: bool okToShare, unsigned priority ) : timerQueueActive ( refMgr, okToShare, priority ) { + timerQueueActive::start(); } epicsTimerQueueActiveForC::~epicsTimerQueueActiveForC () diff --git a/src/libCom/timer/timerPrivate.h b/src/libCom/timer/timerPrivate.h index 5533647e3..186b799e6 100644 --- a/src/libCom/timer/timerPrivate.h +++ b/src/libCom/timer/timerPrivate.h @@ -1,11 +1,10 @@ /*************************************************************************\ -* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* Copyright (c) 2015 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. -* EPICS BASE Versions 3.13.7 -* and higher are distributed subject to a Software License Agreement found -* in file LICENSE that is included with this distribution. +* EPICS BASE is distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. \*************************************************************************/ /* * $Revision-Id$ @@ -134,6 +133,7 @@ class timerQueueActive : public epicsTimerQueueActive, public: typedef epicsSingleton < timerQueueActiveMgr > :: reference RefMgr; timerQueueActive ( RefMgr &, bool okToShare, unsigned priority ); + void start (); epicsTimer & createTimer (); epicsTimerForC & createTimerForC ( epicsTimerCallback pCallback, void *pArg ); void show ( unsigned int level ) const; diff --git a/src/libCom/timer/timerQueueActive.cpp b/src/libCom/timer/timerQueueActive.cpp index a1c25f4a0..6225b11a0 100644 --- a/src/libCom/timer/timerQueueActive.cpp +++ b/src/libCom/timer/timerQueueActive.cpp @@ -1,13 +1,13 @@ /*************************************************************************\ -* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* Copyright (c) 2015 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. -* EPICS BASE Versions 3.13.7 -* and higher are distributed subject to a Software License Agreement found -* in file LICENSE that is included with this distribution. +* EPICS BASE is distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. \*************************************************************************/ /* + * $Revision-Id$ * * Author Jeffrey O. Hill * johill@lanl.gov @@ -49,6 +49,10 @@ timerQueueActive :: epicsThreadGetStackSize ( epicsThreadStackMedium ), priority ), sleepQuantum ( epicsThreadSleepQuantum() ), okToShare ( okToShareIn ), exitFlag ( false ), terminateFlag ( false ) +{ +} + +void timerQueueActive::start () { this->thread.start (); } diff --git a/src/std/rec/biRecord.dbd b/src/std/rec/biRecord.dbd index c0498c300..501ecab83 100644 --- a/src/std/rec/biRecord.dbd +++ b/src/std/rec/biRecord.dbd @@ -29,21 +29,21 @@ recordtype(bi) { } field(OSV,DBF_MENU) { prompt("One Error Severity") - promptgroup(GUI_BITS1) + promptgroup(GUI_ALARMS) pp(TRUE) interest(1) menu(menuAlarmSevr) } field(COSV,DBF_MENU) { prompt("Change of State Svr") - promptgroup(GUI_BITS2) + promptgroup(GUI_ALARMS) pp(TRUE) interest(1) menu(menuAlarmSevr) } field(ZNAM,DBF_STRING) { prompt("Zero Name") - promptgroup(GUI_CALC) + promptgroup(GUI_DISPLAY) pp(TRUE) interest(1) size(26) @@ -51,7 +51,7 @@ recordtype(bi) { } field(ONAM,DBF_STRING) { prompt("One Name") - promptgroup(GUI_CLOCK) + promptgroup(GUI_DISPLAY) pp(TRUE) interest(1) size(26)