diff --git a/configure/RELEASE b/configure/RELEASE index 61a9528..5cb8ccd 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -26,9 +26,11 @@ TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top # EPICS_BASE usually appears last so other apps can override stuff: -PVDATA=/opt/epics/pvDataCPP +#PVDATA=/opt/epics/pvDataCPP +#EPICS_BASE=/opt/epics/base -EPICS_BASE=/opt/epics/base +PVDATA=/home/mrk/hg/pvDataCPP +EPICS_BASE=/home/install/epics/base # Set RULES here if you want to take build rules from somewhere # other than EPICS_BASE: diff --git a/pvAccessApp/ca/clientFactory.cpp b/pvAccessApp/ca/clientFactory.cpp index 6701b0a..4e0bb4f 100644 --- a/pvAccessApp/ca/clientFactory.cpp +++ b/pvAccessApp/ca/clientFactory.cpp @@ -12,7 +12,7 @@ ClientContextImpl* ClientFactory::m_context = 0; void ClientFactory::start() { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_context) return; @@ -29,7 +29,7 @@ void ClientFactory::start() void ClientFactory::stop() { - Lock guard(&m_mutex); + Lock guard(m_mutex); unregisterChannelProvider(m_context->getProvider()); m_context->dispose(); diff --git a/pvAccessApp/factory/ChannelAccessFactory.cpp b/pvAccessApp/factory/ChannelAccessFactory.cpp index c474353..88c9d37 100644 --- a/pvAccessApp/factory/ChannelAccessFactory.cpp +++ b/pvAccessApp/factory/ChannelAccessFactory.cpp @@ -24,12 +24,12 @@ class ChannelAccessImpl : public ChannelAccess { public: ChannelProvider* getProvider(String providerName) { - Lock guard(&channelProviderMutex); + Lock guard(channelProviderMutex); return channelProviders[providerName]; } std::vector* getProviderNames() { - Lock guard(&channelProviderMutex); + Lock guard(channelProviderMutex); std::vector* providers = new std::vector(); for (ChannelProviderMap::const_iterator i = channelProviders.begin(); i != channelProviders.end(); i++) @@ -41,7 +41,7 @@ class ChannelAccessImpl : public ChannelAccess { ChannelAccess * getChannelAccess() { static Mutex mutex = Mutex(); - Lock guard(&mutex); + Lock guard(mutex); if(channelAccess==0){ channelAccess = new ChannelAccessImpl(); @@ -50,12 +50,12 @@ ChannelAccess * getChannelAccess() { } void registerChannelProvider(ChannelProvider *channelProvider) { - Lock guard(&channelProviderMutex); + Lock guard(channelProviderMutex); channelProviders[channelProvider->getProviderName()] = channelProvider; } void unregisterChannelProvider(ChannelProvider *channelProvider) { - Lock guard(&channelProviderMutex); + Lock guard(channelProviderMutex); channelProviders.erase(channelProvider->getProviderName()); } diff --git a/pvAccessApp/factory/CreateRequestFactory.cpp b/pvAccessApp/factory/CreateRequestFactory.cpp index 3c0c164..310cadd 100644 --- a/pvAccessApp/factory/CreateRequestFactory.cpp +++ b/pvAccessApp/factory/CreateRequestFactory.cpp @@ -256,7 +256,7 @@ static CreateRequest* createRequest = 0; CreateRequest * getCreateRequest() { static Mutex mutex = Mutex(); - Lock guard(&mutex); + Lock guard(mutex); if(createRequest==0){ createRequest = new CreateRequestImpl(); diff --git a/pvAccessApp/remote/beaconEmitter.cpp b/pvAccessApp/remote/beaconEmitter.cpp index d9960e4..2cc9ced 100644 --- a/pvAccessApp/remote/beaconEmitter.cpp +++ b/pvAccessApp/remote/beaconEmitter.cpp @@ -28,7 +28,7 @@ BeaconEmitter::BeaconEmitter(Transport* transport, ServerContextImpl* context): _beaconCountLimit = (int16)std::max(10.0f, EPICS_CA_MIN_BEACON_COUNT_LIMIT); // TODO configurable _startupTime = new TimeStamp(); _startupTime->getCurrent(); - _timerNode = new TimerNode(this); + _timerNode = new TimerNode(*this); } BeaconEmitter::BeaconEmitter(Transport* transport,const osiSockAddr* serverAddress): _transport(transport) @@ -49,7 +49,7 @@ BeaconEmitter::BeaconEmitter(Transport* transport,const osiSockAddr* serverAddre _beaconCountLimit = 10; _startupTime = new TimeStamp(); _startupTime->getCurrent(); - _timerNode = new TimerNode(this); + _timerNode = new TimerNode(*this); } BeaconEmitter::~BeaconEmitter() @@ -136,7 +136,7 @@ void BeaconEmitter::destroy() void BeaconEmitter::start() { - _timer->scheduleAfterDelay(_timerNode, 0.0); + _timer->scheduleAfterDelay(*_timerNode, 0.0); } void BeaconEmitter::reschedule() @@ -144,7 +144,7 @@ void BeaconEmitter::reschedule() const double period = (_beaconSequenceID >= _beaconCountLimit) ? _slowBeaconPeriod : _fastBeaconPeriod; if (period > 0) { - _timer->scheduleAfterDelay(_timerNode, period); + _timer->scheduleAfterDelay(*_timerNode, period); } } diff --git a/pvAccessApp/remote/beaconHandler.cpp b/pvAccessApp/remote/beaconHandler.cpp index 47613ba..4bac51b 100644 --- a/pvAccessApp/remote/beaconHandler.cpp +++ b/pvAccessApp/remote/beaconHandler.cpp @@ -40,7 +40,7 @@ void BeaconHandler::beaconNotify(osiSockAddr* from, int8 remoteTransportRevision bool BeaconHandler::updateBeacon(int8 remoteTransportRevision, TimeStamp* timestamp, TimeStamp* startupTime, int16 sequentalID) { - Lock guard(&_mutex); + Lock guard(_mutex); // first beacon notification check if (_serverStartupTime.getSecondsPastEpoch() == 0) { diff --git a/pvAccessApp/remote/blockingClientTCPTransport.cpp b/pvAccessApp/remote/blockingClientTCPTransport.cpp index 6d647bd..fb98e61 100644 --- a/pvAccessApp/remote/blockingClientTCPTransport.cpp +++ b/pvAccessApp/remote/blockingClientTCPTransport.cpp @@ -40,7 +40,7 @@ namespace epics { receiveBufferSize, priority), _introspectionRegistry( new IntrospectionRegistry(false)), _connectionTimeout(beaconInterval *1000), _unresponsiveTransport(false), _timerNode( - new TimerNode(this)), _verifyOrEcho(true) { + new TimerNode(*this)), _verifyOrEcho(true) { // _autoDelete = false; // initialize owners list, send queue @@ -52,7 +52,7 @@ namespace epics { // setup connection timeout timer (watchdog) epicsTimeGetCurrent(&_aliveTimestamp); - context->getTimer()->schedulePeriodic(_timerNode, beaconInterval, + context->getTimer()->schedulePeriodic(*_timerNode, beaconInterval, beaconInterval); start(); @@ -83,7 +83,7 @@ namespace epics { } void BlockingClientTCPTransport::unresponsiveTransport() { - Lock lock(&_ownersMutex); + Lock lock(_ownersMutex); if(!_unresponsiveTransport) { _unresponsiveTransport = true; @@ -98,14 +98,14 @@ namespace epics { } bool BlockingClientTCPTransport::acquire(TransportClient* client) { - Lock lock(&_mutex); + Lock lock(_mutex); if(_closed) return false; char ipAddrStr[48]; ipAddrToDottedIP(&_socketAddress.ia, ipAddrStr, sizeof(ipAddrStr)); errlogSevPrintf(errlogInfo, "Acquiring transport to %s.", ipAddrStr); - Lock lock2(&_ownersMutex); + Lock lock2(_ownersMutex); // TODO double check? if(_closed) return false; _owners.insert(client); @@ -124,7 +124,7 @@ namespace epics { * Notifies clients about disconnect. */ void BlockingClientTCPTransport::closedNotifyClients() { - Lock lock(&_ownersMutex); + Lock lock(_ownersMutex); // check if still acquired int refs = _owners.size(); @@ -150,7 +150,7 @@ namespace epics { } void BlockingClientTCPTransport::release(TransportClient* client) { - Lock lock(&_mutex); + Lock lock(_mutex); if(_closed) return; char ipAddrStr[48]; @@ -158,7 +158,7 @@ namespace epics { errlogSevPrintf(errlogInfo, "Releasing transport to %s.", ipAddrStr); - Lock lock2(&_ownersMutex); + Lock lock2(_ownersMutex); _owners.erase(client); // not used anymore @@ -167,13 +167,13 @@ namespace epics { } void BlockingClientTCPTransport::aliveNotification() { - Lock guard(&_ownersMutex); + Lock guard(_ownersMutex); epicsTimeGetCurrent(&_aliveTimestamp); if(_unresponsiveTransport) responsiveTransport(); } void BlockingClientTCPTransport::responsiveTransport() { - Lock lock(&_ownersMutex); + Lock lock(_ownersMutex); if(_unresponsiveTransport) { _unresponsiveTransport = false; @@ -190,7 +190,7 @@ namespace epics { void BlockingClientTCPTransport::changedTransport() { _introspectionRegistry->reset(); - Lock lock(&_ownersMutex); + Lock lock(_ownersMutex); set::iterator it = _owners.begin(); for(; it!=_owners.end(); it++) { TransportClient* client = *it; diff --git a/pvAccessApp/remote/blockingServerTCPTransport.cpp b/pvAccessApp/remote/blockingServerTCPTransport.cpp index 1deadb4..aabac00 100644 --- a/pvAccessApp/remote/blockingServerTCPTransport.cpp +++ b/pvAccessApp/remote/blockingServerTCPTransport.cpp @@ -44,7 +44,7 @@ namespace epics { } void BlockingServerTCPTransport::destroyAllChannels() { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); if(_channels.size()==0) return; char ipAddrStr[64]; @@ -68,7 +68,7 @@ namespace epics { } pvAccessID BlockingServerTCPTransport::preallocateChannelSID() { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); // search first free (theoretically possible loop of death) pvAccessID sid = ++_lastChannelSID; while(_channels.find(sid)!=_channels.end()) @@ -78,17 +78,17 @@ namespace epics { void BlockingServerTCPTransport::registerChannel(pvAccessID sid, ServerChannel* channel) { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); _channels[sid] = channel; } void BlockingServerTCPTransport::unregisterChannel(pvAccessID sid) { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); _channels.erase(sid); } ServerChannel* BlockingServerTCPTransport::getChannel(pvAccessID sid) { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); map::iterator it = _channels.find(sid); if(it!=_channels.end()) return it->second; @@ -97,7 +97,7 @@ namespace epics { } int BlockingServerTCPTransport::getChannelCount() { - Lock lock(&_channelsMutex); + Lock lock(_channelsMutex); return _channels.size(); } diff --git a/pvAccessApp/remote/blockingTCP.h b/pvAccessApp/remote/blockingTCP.h index 5e07f51..cfe328b 100644 --- a/pvAccessApp/remote/blockingTCP.h +++ b/pvAccessApp/remote/blockingTCP.h @@ -55,7 +55,7 @@ namespace epics { int16 priority); virtual bool isClosed() { - Lock guard(&_mutex); + Lock guard(_mutex); return _closed; } @@ -110,12 +110,12 @@ namespace epics { virtual int getSocketReceiveBufferSize() const; virtual bool isVerified() { - Lock lock(&_verifiedMutex); + Lock lock(_verifiedMutex); return _verified; } virtual void verified() { - Lock lock(&_verifiedMutex); + Lock lock(_verifiedMutex); _verified = true; } diff --git a/pvAccessApp/remote/blockingTCPAcceptor.cpp b/pvAccessApp/remote/blockingTCPAcceptor.cpp index 1d58fda..580c06e 100644 --- a/pvAccessApp/remote/blockingTCPAcceptor.cpp +++ b/pvAccessApp/remote/blockingTCPAcceptor.cpp @@ -156,7 +156,7 @@ namespace epics { while(socketOpen) { { - Lock guard(&_mutex); + Lock guard(_mutex); if (_destroyed) break; } @@ -245,7 +245,7 @@ namespace epics { } void BlockingTCPAcceptor::destroy() { - Lock guard(&_mutex); + Lock guard(_mutex); if(_destroyed) return; _destroyed = true; diff --git a/pvAccessApp/remote/blockingTCPTransport.cpp b/pvAccessApp/remote/blockingTCPTransport.cpp index 58bce7b..a75ea71 100644 --- a/pvAccessApp/remote/blockingTCPTransport.cpp +++ b/pvAccessApp/remote/blockingTCPTransport.cpp @@ -206,7 +206,7 @@ namespace epics { } void BlockingTCPTransport::close(bool force) { - Lock lock(&_mutex); + Lock lock(_mutex); // already closed check if(_closed) return; @@ -881,7 +881,7 @@ printf("sendThreadRunnner exception\n"); } void BlockingTCPTransport::enqueueSendRequest(TransportSender* sender) { - Lock lock(&_sendQueueMutex); + Lock lock(_sendQueueMutex); if(_closed) return; sender->acquire(); _sendQueue->insert(sender); @@ -889,7 +889,7 @@ printf("sendThreadRunnner exception\n"); } void BlockingTCPTransport::enqueueMonitorSendRequest(TransportSender* sender) { - Lock lock(&_monitorMutex); + Lock lock(_monitorMutex); if(_closed) return; sender->acquire(); _monitorSendQueue->insert(sender); diff --git a/pvAccessApp/remote/blockingUDP.h b/pvAccessApp/remote/blockingUDP.h index d373ec3..3173576 100644 --- a/pvAccessApp/remote/blockingUDP.h +++ b/pvAccessApp/remote/blockingUDP.h @@ -38,7 +38,7 @@ namespace epics { virtual ~BlockingUDPTransport(); virtual bool isClosed() { - Lock guard(&_mutex); + Lock guard(_mutex); return _closed; } diff --git a/pvAccessApp/remote/blockingUDPTransport.cpp b/pvAccessApp/remote/blockingUDPTransport.cpp index ac47644..d3d8406 100644 --- a/pvAccessApp/remote/blockingUDPTransport.cpp +++ b/pvAccessApp/remote/blockingUDPTransport.cpp @@ -77,7 +77,7 @@ namespace epics { void BlockingUDPTransport::close(bool forced, bool waitForThreadToComplete) { { - Lock guard(&_mutex); + Lock guard(_mutex); if(_closed) return; _closed = true; @@ -94,7 +94,7 @@ namespace epics { } void BlockingUDPTransport::enqueueSendRequest(TransportSender* sender) { - Lock lock(&_sendMutex); + Lock lock(_sendMutex); _sendToEnabled = false; _sendBuffer->clear(); diff --git a/pvAccessApp/remote/channelSearchManager.cpp b/pvAccessApp/remote/channelSearchManager.cpp index 6675de7..4545756 100644 --- a/pvAccessApp/remote/channelSearchManager.cpp +++ b/pvAccessApp/remote/channelSearchManager.cpp @@ -20,7 +20,7 @@ void BaseSearchInstance::initializeSearchInstance() void BaseSearchInstance::unsetListOwnership() { - Lock guard(&_mutex); + Lock guard(_mutex); if (_owner != NULL) this->release(); _owner = NULL; } @@ -30,8 +30,8 @@ void BaseSearchInstance::addAndSetListOwnership(ArrayFIFO* newO if(ownerMutex == NULL) THROW_BASE_EXCEPTION("Null owner mutex"); _ownerMutex = ownerMutex; - Lock ownerGuard(_ownerMutex); - Lock guard(&_mutex); + Lock ownerGuard(*_ownerMutex); + Lock guard(_mutex); newOwner->push(this); if (_owner == NULL) this->acquire(); // new owner _owner = newOwner; @@ -43,8 +43,8 @@ void BaseSearchInstance::removeAndUnsetListOwnership() if(_owner == NULL) return; if(_ownerMutex == NULL) THROW_BASE_EXCEPTION("Null owner mutex"); - Lock ownerGuard(_ownerMutex); - Lock guard(&_mutex); + Lock ownerGuard(*_ownerMutex); + Lock guard(_mutex); if(_owner != NULL) { this->release(); @@ -55,7 +55,7 @@ void BaseSearchInstance::removeAndUnsetListOwnership() int32 BaseSearchInstance::getOwnerIndex() { - Lock guard(&_mutex); + Lock guard(_mutex); int32 retval = _ownerIndex; return retval; } @@ -102,7 +102,7 @@ SearchTimer::SearchTimer(ChannelSearchManager* _chanSearchManager, int32 timerIn _allowSlowdown(allowSlowdown), _requestPendingChannels(new ArrayFIFO), _responsePendingChannels(new ArrayFIFO), - _timerNode(new TimerNode(this)), + _timerNode(new TimerNode(*this)), _canceled(false), _timeAtResponseCheck(0) { @@ -118,16 +118,16 @@ SearchTimer::~SearchTimer() void SearchTimer::shutdown() { - Lock guard(&_mutex); //the whole method is locked + Lock guard(_mutex); //the whole method is locked { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_canceled) return; _canceled = true; } { - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); _timerNode->cancel(); _requestPendingChannels->clear(); @@ -137,10 +137,10 @@ void SearchTimer::shutdown() void SearchTimer::installChannel(SearchInstance* channel) { - Lock guard(&_mutex); //the whole method is locked + Lock guard(_mutex); //the whole method is locked if(_canceled) return; - Lock pendingChannelGuard(&_requestPendingChannelsMutex); + Lock pendingChannelGuard(_requestPendingChannelsMutex); bool startImmediately = _requestPendingChannels->isEmpty(); channel->addAndSetListOwnership(_requestPendingChannels, &_requestPendingChannelsMutex, _timerIndex); @@ -156,7 +156,7 @@ void SearchTimer::installChannel(SearchInstance* channel) } // start with some initial delay (to collect all installed requests) - _chanSearchManager->_context->getTimer()->scheduleAfterDelay(_timerNode, 0.01); + _chanSearchManager->_context->getTimer()->scheduleAfterDelay(*_timerNode, 0.01); } } @@ -167,7 +167,7 @@ void SearchTimer::moveChannels(SearchTimer* destination) while((channel = _responsePendingChannels->pop()) != NULL) { { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_searchAttempts > 0) { _searchAttempts--; @@ -177,7 +177,7 @@ void SearchTimer::moveChannels(SearchTimer* destination) } // bulk move - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); while (!_requestPendingChannels->isEmpty()) { destination->installChannel(_requestPendingChannels->pop()); @@ -192,7 +192,7 @@ void SearchTimer::timerStopped() void SearchTimer::callback() { { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_canceled) return; } @@ -200,12 +200,12 @@ void SearchTimer::callback() // boost search period (if necessary) for channels not recently searched int32 searchRespones; { - Lock guard(&_volMutex); + Lock guard(_volMutex); searchRespones = _searchRespones; } if(_allowBoost && searchRespones > 0) { - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); while(!_requestPendingChannels->isEmpty()) { SearchInstance* channel = _requestPendingChannels->peek(); @@ -251,7 +251,7 @@ void SearchTimer::callback() int32 searchRespones,searchAttempts; { - Lock guard(&_volMutex); + Lock guard(_volMutex); searchAttempts = _searchAttempts; searchRespones = _searchRespones; } @@ -287,7 +287,7 @@ void SearchTimer::callback() { - Lock guard(&_volMutex); + Lock guard(_volMutex); _startSequenceNumber = _chanSearchManager->getSequenceNumber() + 1; _searchAttempts = 0; _searchRespones = 0; @@ -299,13 +299,13 @@ void SearchTimer::callback() // reschedule bool canceled; { - Lock guard(&_volMutex); + Lock guard(_volMutex); canceled = _canceled; } { - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); channel = _requestPendingChannels->pop(); } while (!canceled && channel != NULL) @@ -338,7 +338,7 @@ void SearchTimer::callback() if(requestSent) { channel->addAndSetListOwnership(_responsePendingChannels, &_responsePendingChannelsMutex, _timerIndex); - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_searchAttempts < INT_MAX) { _searchAttempts++; @@ -351,12 +351,12 @@ void SearchTimer::callback() if(triesInFrame == 0 && !allowNewFrame) break; { - Lock guard(&_volMutex); + Lock guard(_volMutex); canceled = _canceled; } { - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); channel = _requestPendingChannels->pop(); } } @@ -371,19 +371,19 @@ void SearchTimer::callback() { - Lock guard(&_volMutex); + Lock guard(_volMutex); _endSequenceNumber = _chanSearchManager->getSequenceNumber(); // reschedule canceled = _canceled; } - Lock guard(&_requestPendingChannelsMutex); + Lock guard(_requestPendingChannelsMutex); if(!canceled && !_timerNode->isScheduled()) { bool someWorkToDo = (!_requestPendingChannels->isEmpty() || !_responsePendingChannels->isEmpty()); if(someWorkToDo) { - _chanSearchManager->_context->getTimer()->scheduleAfterDelay(_timerNode, period()/1000.0); + _chanSearchManager->_context->getTimer()->scheduleAfterDelay(*_timerNode, period()/1000.0); } } } @@ -392,7 +392,7 @@ void SearchTimer::searchResponse(int32 responseSequenceNumber, bool isSequenceNu { bool validResponse = true; { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_canceled) return; if(isSequenceNumberValid) @@ -407,7 +407,7 @@ void SearchTimer::searchResponse(int32 responseSequenceNumber, bool isSequenceNu { const int64 dt = responseTime - _chanSearchManager->getTimeAtLastSend(); _chanSearchManager->updateRTTE(dt); - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_searchRespones < INT_MAX) { _searchRespones++; @@ -418,7 +418,7 @@ void SearchTimer::searchResponse(int32 responseSequenceNumber, bool isSequenceNu if(_requestPendingChannels->size() > 0) { _timerNode->cancel(); - _chanSearchManager->_context->getTimer()->scheduleAfterDelay(_timerNode, 0.0); + _chanSearchManager->_context->getTimer()->scheduleAfterDelay(*_timerNode, 0.0); } } } @@ -487,10 +487,10 @@ ChannelSearchManager::~ChannelSearchManager() void ChannelSearchManager::cancel() { - Lock guard(&_mutex); + Lock guard(_mutex); { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_canceled) return; _canceled = true; @@ -507,18 +507,18 @@ void ChannelSearchManager::cancel() int32 ChannelSearchManager::registeredChannelCount() { - Lock guard(&_channelMutex); + Lock guard(_channelMutex); return _channels.size(); } void ChannelSearchManager::registerChannel(SearchInstance* channel) { { - Lock guard(&_volMutex); + Lock guard(_volMutex); if(_canceled) return; } - Lock guard(&_channelMutex); + Lock guard(_channelMutex); //overrides if already registered _channels[channel->getSearchInstanceID()] = channel; _timers[0]->installChannel(channel); @@ -526,7 +526,7 @@ void ChannelSearchManager::registerChannel(SearchInstance* channel) void ChannelSearchManager::unregisterChannel(SearchInstance* channel) { - Lock guard(&_channelMutex); + Lock guard(_channelMutex); _channelsIter = _channels.find(channel->getSearchInstanceID()); if(_channelsIter != _channels.end()) { @@ -538,7 +538,7 @@ void ChannelSearchManager::unregisterChannel(SearchInstance* channel) void ChannelSearchManager::searchResponse(int32 cid, int32 seqNo, int8 minorRevision, osiSockAddr* serverAddress) { - Lock guard(&_channelMutex); + Lock guard(_channelMutex); // first remove SearchInstance* si = NULL; _channelsIter = _channels.find(cid); @@ -583,7 +583,7 @@ void ChannelSearchManager::beaconAnomalyNotify() void ChannelSearchManager::initializeSendBuffer() { - Lock guard(&_volMutex); + Lock guard(_volMutex); _sequenceNumber++; @@ -606,8 +606,8 @@ void ChannelSearchManager::initializeSendBuffer() void ChannelSearchManager::flushSendBuffer() { - Lock guard(&_mutex); - Lock volGuard(&_volMutex); + Lock guard(_mutex); + Lock volGuard(_volMutex); TimeStamp now; now.getCurrent(); _timeAtLastSend = now.getMilliseconds(); @@ -617,7 +617,7 @@ void ChannelSearchManager::flushSendBuffer() bool ChannelSearchManager::generateSearchRequestMessage(SearchInstance* channel, bool allowNewFrame) { - Lock guard(&_mutex); + Lock guard(_mutex); bool success = channel->generateSearchRequestMessage(_sendBuffer, _mockTransportSendControl); // buffer full, flush if(!success) @@ -645,28 +645,28 @@ void ChannelSearchManager::boostSearching(SearchInstance* channel, int32 timerIn inline void ChannelSearchManager::updateRTTE(long rtt) { - Lock guard(&_volMutex); + Lock guard(_volMutex); const double error = rtt - _rttmean; _rttmean += error / 4.0; } inline double ChannelSearchManager::getRTTE() { - Lock guard(&_volMutex); + Lock guard(_volMutex); double rtte = min(max((double)_rttmean, (double)MIN_RTT), (double)MAX_RTT); return rtte; } inline int32 ChannelSearchManager::getSequenceNumber() { - Lock guard(&_volMutex); + Lock guard(_volMutex); int32 retval = _sequenceNumber; return retval; } inline int64 ChannelSearchManager::getTimeAtLastSend() { - Lock guard(&_volMutex); + Lock guard(_volMutex); int64 retval = _timeAtLastSend; return retval; } diff --git a/pvAccessApp/remoteClient/clientContextImpl.cpp b/pvAccessApp/remoteClient/clientContextImpl.cpp index e0a872d..91f623c 100644 --- a/pvAccessApp/remoteClient/clientContextImpl.cpp +++ b/pvAccessApp/remoteClient/clientContextImpl.cpp @@ -110,7 +110,7 @@ namespace epics { } bool startRequest(int32 qos) { - Lock guard(&m_mutex); + Lock guard(m_mutex); // we allow pure destroy... if (m_pendingRequest != NULL_REQUEST && qos != PURE_DESTROY_REQUEST) @@ -121,12 +121,12 @@ namespace epics { } void stopRequest() { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_pendingRequest = NULL_REQUEST; } int32 getPendingRequest() { - Lock guard(&m_mutex); + Lock guard(m_mutex); return m_pendingRequest; } @@ -189,7 +189,7 @@ namespace epics { virtual void destroy() { { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) return; m_destroyed = true; @@ -257,7 +257,7 @@ namespace epics { } virtual void acquire() { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_refCount++; } @@ -363,7 +363,7 @@ namespace epics { { // TODO optimize { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) { EXCEPTION_GUARD(m_callback->processDone(destroyedStatus)); return; @@ -511,7 +511,7 @@ namespace epics { virtual void get(bool lastRequest) { // TODO optimize { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) { EXCEPTION_GUARD(m_channelGetRequester->getDone(destroyedStatus)); return; @@ -1418,7 +1418,7 @@ namespace epics { virtual void destroy() { { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) return; m_destroyed = true; @@ -1432,7 +1432,7 @@ namespace epics { } virtual void acquire() { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_refCount++; } @@ -1507,19 +1507,19 @@ namespace epics { } virtual void response(Transport* transport, ByteBuffer* payloadBuffer) { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_gotMonitor = true; // no data, only notify m_callback->monitorEvent(this); } virtual MonitorElement* poll() { - Lock guard(&m_mutex); + Lock guard(m_mutex); return m_gotMonitor ? this : 0; } virtual void release(MonitorElement* monitorElement) { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_gotMonitor = false; } @@ -1583,7 +1583,7 @@ namespace epics { } virtual void init(Structure* structure) { - Lock guard(&m_mutex); + Lock guard(m_mutex); structure->incReferenceCount(); m_monitorElementStructure = getPVDataCreate()->createPVStructure(0, structure); @@ -1593,7 +1593,7 @@ namespace epics { } virtual void response(Transport* transport, ByteBuffer* payloadBuffer) { - Lock guard(&m_mutex); + Lock guard(m_mutex); // simply deserialize and notify m_monitorElementChangeBitSet->deserialize(payloadBuffer, transport); m_monitorElementStructure->deserialize(payloadBuffer, transport, m_monitorElementChangeBitSet); @@ -1603,17 +1603,17 @@ namespace epics { } virtual MonitorElement* poll() { - Lock guard(&m_mutex); + Lock guard(m_mutex); return m_gotMonitor ? this : 0; } virtual void release(MonitorElement* monitorElement) { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_gotMonitor = false; } Status start() { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_gotMonitor = false; return Status::OK; } @@ -1685,7 +1685,7 @@ namespace epics { } virtual void init(Structure* structure) { - Lock guard(&m_mutex); + Lock guard(m_mutex); structure->incReferenceCount(); m_monitorElementStructure = getPVDataCreate()->createPVStructure(0, structure); @@ -1699,7 +1699,7 @@ namespace epics { } virtual void response(Transport* transport, ByteBuffer* payloadBuffer) { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (!m_gotMonitor) { @@ -1730,7 +1730,7 @@ namespace epics { } virtual MonitorElement* poll() { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (!m_gotMonitor) return 0; // compress if needed @@ -1745,12 +1745,12 @@ namespace epics { } virtual void release(MonitorElement* monitorElement) { - Lock guard(&m_mutex); + Lock guard(m_mutex); m_gotMonitor = false; } Status start() { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (!m_monitorElementChangeBitSet) return Status(Status::STATUSTYPE_ERROR, "Monitor not connected."); m_gotMonitor = false; @@ -1961,7 +1961,7 @@ namespace epics { virtual Status start() { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) return BaseRequestImpl::destroyedStatus; @@ -1985,7 +1985,7 @@ namespace epics { virtual Status stop() { - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_destroyed) return BaseRequestImpl::destroyedStatus; @@ -2644,7 +2644,7 @@ namespace epics { // NOTE: synchronization guarantees that transport is non-0 and state == CONNECTED. virtual epics::pvData::String getRemoteAddress() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState != CONNECTED) { static String emptyString; return emptyString; @@ -2667,7 +2667,7 @@ namespace epics { virtual ConnectionState getConnectionState() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); return m_connectionState; } @@ -2702,24 +2702,24 @@ namespace epics { } virtual pvAccessID getServerChannelID() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); return m_serverChannelID; } virtual void registerResponseRequest(ResponseRequest* responseRequest) { - Lock guard(&m_responseRequestsMutex); + Lock guard(m_responseRequestsMutex); m_responseRequests[responseRequest->getIOID()] = responseRequest; } virtual void unregisterResponseRequest(ResponseRequest* responseRequest) { - Lock guard(&m_responseRequestsMutex); + Lock guard(m_responseRequestsMutex); m_responseRequests.erase(responseRequest->getIOID()); } void connect() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); // if not destroyed... if (m_connectionState == DESTROYED) throw std::runtime_error("Channel destroyed."); @@ -2728,7 +2728,7 @@ namespace epics { } void disconnect() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); // if not destroyed... if (m_connectionState == DESTROYED) throw std::runtime_error("Channel destroyed."); @@ -2743,7 +2743,7 @@ namespace epics { */ void createChannel(Transport* transport) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); // do not allow duplicate creation to the same transport if (!m_allowCreation) @@ -2782,7 +2782,7 @@ namespace epics { */ virtual void createChannelFailed() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); cancel(); // ... and search again @@ -2796,7 +2796,7 @@ namespace epics { */ virtual void connectionCompleted(pvAccessID sid/*, rights*/) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); bool allOK = false; try @@ -2833,7 +2833,7 @@ namespace epics { */ void destroy(bool force) { { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState == DESTROYED) return; //throw std::runtime_error("Channel already destroyed."); @@ -2849,7 +2849,7 @@ namespace epics { // it is not related to channel destroy; not a mechanism to // allow channel sharing void acquire() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); m_references++; } @@ -2880,7 +2880,7 @@ namespace epics { */ void destroyChannel(bool force) { { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState == DESTROYED) throw std::runtime_error("Channel already destroyed."); @@ -2920,7 +2920,7 @@ namespace epics { * @param remoteDestroy issue channel destroy request. */ void disconnect(bool initiateSearch, bool remoteDestroy) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState != CONNECTED && !m_transport) return; @@ -2962,7 +2962,7 @@ namespace epics { */ void initiateSearch() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); m_allowCreation = true; @@ -2978,7 +2978,7 @@ namespace epics { } virtual void searchResponse(int8 minorRevision, osiSockAddr* serverAddress) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); Transport* transport = m_transport; if (transport) { @@ -3012,7 +3012,7 @@ namespace epics { virtual Transport* checkAndGetTransport() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); // TODO C-fy if (m_connectionState == DESTROYED) throw std::runtime_error("Channel destroyed."); @@ -3023,12 +3023,12 @@ namespace epics { virtual Transport* getTransport() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); return m_transport; } virtual void transportResponsive(Transport* transport) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState == DISCONNECTED) { updateSubscriptions(); @@ -3039,7 +3039,7 @@ namespace epics { } void transportUnresponsive() { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState == CONNECTED) { // NOTE: 2 types of disconnected state - distinguish them @@ -3055,7 +3055,7 @@ namespace epics { */ void setConnectionState(ConnectionState connectionState) { - Lock guard(&m_channelMutex); + Lock guard(m_channelMutex); if (m_connectionState != connectionState) { m_connectionState = connectionState; @@ -3122,7 +3122,7 @@ namespace epics { { Status* status = destroy ? &channelDestroyed : &channelDisconnected; - Lock guard(&m_responseRequestsMutex); + Lock guard(m_responseRequestsMutex); m_needSubscriptionUpdate = true; @@ -3147,7 +3147,7 @@ namespace epics { // TODO to be called from non-transport thread !!!!!! void resubscribeSubscriptions() { - Lock guard(&m_responseRequestsMutex); + Lock guard(m_responseRequestsMutex); Transport* transport = getTransport(); @@ -3168,7 +3168,7 @@ namespace epics { // TODO to be called from non-transport thread !!!!!! void updateSubscriptions() { - Lock guard(&m_responseRequestsMutex); + Lock guard(m_responseRequestsMutex); if (m_needSubscriptionUpdate) m_needSubscriptionUpdate = false; @@ -3248,7 +3248,7 @@ namespace epics { } virtual void printInfo(epics::pvData::StringBuilder out) { - //Lock lock(&m_channelMutex); + //Lock lock(m_channelMutex); //std::ostringstream ostr; //static String emptyString; @@ -3390,30 +3390,30 @@ TODO } virtual ChannelProvider* getProvider() { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); return m_provider; } virtual Timer* getTimer() { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); return m_timer; } virtual TransportRegistry* getTransportRegistry() { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); return m_transportRegistry; } virtual BlockingUDPTransport* getSearchTransport() { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); return m_searchTransport; } virtual void initialize() { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); if (m_contextState == CONTEXT_DESTROYED) throw std::runtime_error("Context destroyed."); @@ -3432,7 +3432,7 @@ TODO } virtual void printInfo(epics::pvData::StringBuilder out) { - Lock lock(&m_contextMutex); + Lock lock(m_contextMutex); std::ostringstream ostr; static String emptyString; @@ -3465,7 +3465,7 @@ TODO virtual void destroy() { { - Lock guard(&m_contextMutex); + Lock guard(m_contextMutex); if (m_contextState == CONTEXT_DESTROYED) { @@ -3487,7 +3487,7 @@ TODO } virtual void acquire() { - Lock guard(&m_contextMutex); + Lock guard(m_contextMutex); m_refCount++; } @@ -3627,7 +3627,7 @@ TODO } void destroyAllChannels() { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); int count = 0; ChannelImpl* channels[m_channelsByCID.size()]; @@ -3658,7 +3658,7 @@ TODO * Check context state and tries to establish necessary state. */ void checkState() { - Lock lock(&m_contextMutex); // TODO check double-lock?!!! + Lock lock(m_contextMutex); // TODO check double-lock?!!! if (m_contextState == CONTEXT_DESTROYED) throw std::runtime_error("Context destroyed."); @@ -3672,7 +3672,7 @@ TODO */ void registerChannel(ChannelImpl* channel) { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); m_channelsByCID[channel->getChannelID()] = channel; } @@ -3682,7 +3682,7 @@ TODO */ void unregisterChannel(ChannelImpl* channel) { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); m_channelsByCID.erase(channel->getChannelID()); } @@ -3693,7 +3693,7 @@ TODO */ ChannelImpl* getChannel(pvAccessID channelID) { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); CIDChannelMap::iterator it = m_channelsByCID.find(channelID); return (it == m_channelsByCID.end() ? 0 : it->second); } @@ -3704,7 +3704,7 @@ TODO */ pvAccessID generateCID() { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); // search first free (theoretically possible loop of death) while (m_channelsByCID.find(++m_lastCID) != m_channelsByCID.end()); @@ -3718,7 +3718,7 @@ TODO */ void freeCID(int cid) { - Lock guard(&m_cidMapMutex); + Lock guard(m_cidMapMutex); m_channelsByCID.erase(cid); } @@ -3730,7 +3730,7 @@ TODO */ ResponseRequest* getResponseRequest(pvAccessID ioid) { - Lock guard(&m_ioidMapMutex); + Lock guard(m_ioidMapMutex); IOIDResponseRequestMap::iterator it = m_pendingResponseRequests.find(ioid); if (it == m_pendingResponseRequests.end()) return 0; ResponseRequest* rr = it->second; @@ -3745,7 +3745,7 @@ TODO */ pvAccessID registerResponseRequest(ResponseRequest* request) { - Lock guard(&m_ioidMapMutex); + Lock guard(m_ioidMapMutex); pvAccessID ioid = generateIOID(); m_pendingResponseRequests[ioid] = request; return ioid; @@ -3758,7 +3758,7 @@ TODO */ ResponseRequest* unregisterResponseRequest(ResponseRequest* request) { - Lock guard(&m_ioidMapMutex); + Lock guard(m_ioidMapMutex); IOIDResponseRequestMap::iterator it = m_pendingResponseRequests.find(request->getIOID()); if (it == m_pendingResponseRequests.end()) return 0; @@ -3774,7 +3774,7 @@ TODO */ pvAccessID generateIOID() { - Lock guard(&m_ioidMapMutex); + Lock guard(m_ioidMapMutex); // search first free (theoretically possible loop of death) @@ -3801,7 +3801,7 @@ TODO BeaconHandler* getBeaconHandler(osiSockAddr* responseFrom) { // TODO delete handlers - Lock guard(&m_beaconMapMutex); + Lock guard(m_beaconMapMutex); AddressBeaconHandlerMap::iterator it = m_beaconHandlers.find(*responseFrom); BeaconHandler* handler; if (it == m_beaconHandlers.end()) diff --git a/pvAccessApp/server/serverContext.cpp b/pvAccessApp/server/serverContext.cpp index 6e2fce3..7a66aaa 100644 --- a/pvAccessApp/server/serverContext.cpp +++ b/pvAccessApp/server/serverContext.cpp @@ -106,7 +106,7 @@ void ServerContextImpl::loadConfiguration() void ServerContextImpl::initialize(ChannelAccess* channelAccess) { //TODO uncomment - /*Lock guard(&_mutex); + /*Lock guard(_mutex); if (channelAccess == NULL) { THROW_BASE_EXCEPTION("non null channelAccess expected"); @@ -224,7 +224,7 @@ void ServerContextImpl::run(int32 seconds) } { - Lock guard(&_mutex); + Lock guard(_mutex); if (_state == NOT_INITIALIZED) { @@ -260,14 +260,14 @@ void ServerContextImpl::run(int32 seconds) } { - Lock guard(&_mutex); + Lock guard(_mutex); _state = SHUTDOWN; } } void ServerContextImpl::shutdown() { - Lock guard(&_mutex); + Lock guard(_mutex); if(_state == DESTROYED) { THROW_BASE_EXCEPTION("Context already destroyed."); @@ -279,7 +279,7 @@ void ServerContextImpl::shutdown() void ServerContextImpl::destroy() { - Lock guard(&_mutex); + Lock guard(_mutex); if (_state == DESTROYED) { THROW_BASE_EXCEPTION("Context already destroyed."); @@ -365,7 +365,7 @@ void ServerContextImpl::printInfo() void ServerContextImpl::printInfo(ostream& str) { - Lock guard(&_mutex); + Lock guard(_mutex); str << "VERSION : " << getVersion().getVersionString() << endl \ << "CHANNEL PROVIDER : " << _channelProviderName << endl \ << "BEACON_ADDR_LIST : " << _beaconAddressList << endl \ @@ -397,13 +397,13 @@ void ServerContextImpl::setBeaconServerStatusProvider(BeaconServerStatusProvider bool ServerContextImpl::isInitialized() { - Lock guard(&_mutex); + Lock guard(_mutex); return _state == INITIALIZED || _state == RUNNING || _state == SHUTDOWN; } bool ServerContextImpl::isDestroyed() { - Lock guard(&_mutex); + Lock guard(_mutex); return _state == DESTROYED; } diff --git a/pvAccessApp/utils/arrayFIFO.h b/pvAccessApp/utils/arrayFIFO.h index 304548d..c515c11 100644 --- a/pvAccessApp/utils/arrayFIFO.h +++ b/pvAccessApp/utils/arrayFIFO.h @@ -222,7 +222,7 @@ namespace epics { template void ArrayFIFO::addFirst(const T e) { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); _elements[_head = (_head-1)&(_size-1)] = e; if(_head==_tail) doubleCapacity(); @@ -230,7 +230,7 @@ namespace epics { template void ArrayFIFO::addLast(const T e) { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); _elements[_tail] = e; if((_tail = (_tail+1)&(_size-1))==_head) doubleCapacity(); @@ -238,7 +238,7 @@ namespace epics { template T ArrayFIFO::pollFirst() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); if(isEmpty()) return 0; @@ -249,7 +249,7 @@ namespace epics { template T ArrayFIFO::pollLast() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); if(isEmpty()) return 0; @@ -259,7 +259,7 @@ namespace epics { template T ArrayFIFO::peekFirst() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); if(isEmpty()) return 0; @@ -268,7 +268,7 @@ namespace epics { template T ArrayFIFO::peekLast() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); if(isEmpty()) return 0; @@ -292,21 +292,21 @@ namespace epics { template size_t ArrayFIFO::size() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); return (_tail-_head)&(_size-1); } template bool ArrayFIFO::isEmpty() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); return _head==_tail; } template void ArrayFIFO::clear() { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); _head = _tail = 0; } @@ -354,7 +354,7 @@ namespace epics { template bool ArrayFIFO::remove(const T e) { - epics::pvData::Lock lock(&_mutex); + epics::pvData::Lock lock(_mutex); if(isEmpty()) return false; // nothing to do diff --git a/pvAccessApp/utils/configuration.cpp b/pvAccessApp/utils/configuration.cpp index f0ee2a8..6b2b7d4 100644 --- a/pvAccessApp/utils/configuration.cpp +++ b/pvAccessApp/utils/configuration.cpp @@ -281,7 +281,7 @@ ConfigurationProviderImpl::~ConfigurationProviderImpl() void ConfigurationProviderImpl::registerConfiguration(const string name, const Configuration* configuration) { - Lock guard(&_mutex); + Lock guard(_mutex); _configsIter = _configs.find(name); if(_configsIter != _configs.end()) { @@ -306,7 +306,7 @@ Mutex ConfigurationFactory::_conf_factory_mutex = Mutex(); ConfigurationProviderImpl* ConfigurationFactory::getProvider() { - Lock guard(&_conf_factory_mutex); + Lock guard(_conf_factory_mutex); if(_configurationProvider == NULL) { _configurationProvider = new ConfigurationProviderImpl(); diff --git a/pvAccessApp/utils/introspectionRegistry.cpp b/pvAccessApp/utils/introspectionRegistry.cpp index 01d159e..ec93797 100644 --- a/pvAccessApp/utils/introspectionRegistry.cpp +++ b/pvAccessApp/utils/introspectionRegistry.cpp @@ -29,7 +29,7 @@ IntrospectionRegistry::~IntrospectionRegistry() void IntrospectionRegistry::reset() { - Lock guard(&_mutex); + Lock guard(_mutex); _outgoingIdPointer = _direction; //decrement references for(_registryRIter = _registry.rbegin(); _registryRIter != _registry.rend(); _registryRIter++) @@ -41,7 +41,7 @@ void IntrospectionRegistry::reset() FieldConstPtr IntrospectionRegistry::getIntrospectionInterface(const short id) { - Lock guard(&_mutex); + Lock guard(_mutex); _registryIter = _registry.find(id); if(_registryIter == _registry.end()) { @@ -52,7 +52,7 @@ FieldConstPtr IntrospectionRegistry::getIntrospectionInterface(const short id) void IntrospectionRegistry::registerIntrospectionInterface(const short id,FieldConstPtr field) { - Lock guard(&_mutex); + Lock guard(_mutex); //first decrement reference on old value _registryIter = _registry.find(id); if(_registryIter != _registry.end()) @@ -65,7 +65,7 @@ void IntrospectionRegistry::registerIntrospectionInterface(const short id,FieldC short IntrospectionRegistry::registerIntrospectionInterface(FieldConstPtr field, bool& existing) { - Lock guard(&_mutex); + Lock guard(_mutex); short key; if(registryContainsValue(field, key)) { diff --git a/pvAccessApp/utils/logger.cpp b/pvAccessApp/utils/logger.cpp index 9044231..70b8ac9 100644 --- a/pvAccessApp/utils/logger.cpp +++ b/pvAccessApp/utils/logger.cpp @@ -62,8 +62,8 @@ namespace epics { } void createFileLogger(String fname) { - static Mutex mutex = Mutex(); - Lock xx(&mutex); + static Mutex mutex; + Lock xx(mutex); if(fileLogger==NULL) { fileLogger = new FileLogger(fname); diff --git a/pvAccessApp/utils/namedLockPattern.h b/pvAccessApp/utils/namedLockPattern.h index 386eaa7..6bed798 100644 --- a/pvAccessApp/utils/namedLockPattern.h +++ b/pvAccessApp/utils/namedLockPattern.h @@ -66,7 +66,7 @@ bool NamedLockPattern::acquireSynchronizationObject(const Key name, { ReferenceCountingLock* lock; { //due to guard - epics::pvData::Lock guard(&_mutex); + epics::pvData::Lock guard(_mutex); _namedLocksIter = _namedLocks.find(name); // get synchronization object @@ -104,7 +104,7 @@ void NamedLockPattern::releaseSynchronizationObject(const Key name) template void NamedLockPattern::releaseSynchronizationObject(const Key name,const bool release) { - epics::pvData::Lock guard(&_mutex); + epics::pvData::Lock guard(_mutex); ReferenceCountingLock* lock; _namedLocksIter = _namedLocks.find(name); diff --git a/pvAccessApp/utils/referenceCountingLock.cpp b/pvAccessApp/utils/referenceCountingLock.cpp index 1f22a75..bcd0540 100644 --- a/pvAccessApp/utils/referenceCountingLock.cpp +++ b/pvAccessApp/utils/referenceCountingLock.cpp @@ -20,7 +20,7 @@ ReferenceCountingLock::ReferenceCountingLock(): _references(1) retval = pthread_mutexattr_settype(&mutexAttribute, PTHREAD_MUTEX_RECURSIVE); if(retval == 0) { - retval = pthread_mutex_init(&_mutex, &mutexAttribute); + retval = pthread_mutex_init(_mutex, &mutexAttribute); if(retval != 0) { //string errMsg = "Error: pthread_mutex_init failed: " + string(strerror(retval)); @@ -38,7 +38,7 @@ ReferenceCountingLock::ReferenceCountingLock(): _references(1) ReferenceCountingLock::~ReferenceCountingLock() { -// pthread_mutex_destroy(&_mutex); +// pthread_mutex_destroy(_mutex); } bool ReferenceCountingLock::acquire(int64 msecs) @@ -57,7 +57,7 @@ bool ReferenceCountingLock::acquire(int64 msecs) deltatime.tv_nsec = 0; } - int32 retval = pthread_mutex_timedlock(&_mutex, &deltatime); + int32 retval = pthread_mutex_timedlock(_mutex, &deltatime); if(retval == 0) { return true; @@ -69,7 +69,7 @@ bool ReferenceCountingLock::acquire(int64 msecs) void ReferenceCountingLock::release() { _mutex.unlock(); -/* int retval = pthread_mutex_unlock(&_mutex); +/* int retval = pthread_mutex_unlock(_mutex); if(retval != 0) { //string errMsg = "Error: pthread_mutex_unlock failed: " + string(strerror(retval)); @@ -79,14 +79,14 @@ void ReferenceCountingLock::release() int ReferenceCountingLock::increment() { - Lock guard(&_countMutex); + Lock guard(_countMutex); ++_references; return _references; } int ReferenceCountingLock::decrement() { - Lock guard(&_countMutex); + Lock guard(_countMutex); --_references; return _references; } diff --git a/pvAccessApp/utils/transportRegistry.cpp b/pvAccessApp/utils/transportRegistry.cpp index 2353636..ff36a09 100644 --- a/pvAccessApp/utils/transportRegistry.cpp +++ b/pvAccessApp/utils/transportRegistry.cpp @@ -21,7 +21,7 @@ TransportRegistry::~TransportRegistry() void TransportRegistry::put(Transport* transport) { - Lock guard(&_mutex); + Lock guard(_mutex); //const String type = transport.getType(); const int16 priority = transport->getPriority(); const osiSockAddr* address = transport->getRemoteAddress(); @@ -43,7 +43,7 @@ void TransportRegistry::put(Transport* transport) Transport* TransportRegistry::get(const String type, const osiSockAddr* address, const int16 priority) { - Lock guard(&_mutex); + Lock guard(_mutex); _transportsIter = _transports.find(address); if(_transportsIter != _transports.end()) { @@ -59,7 +59,7 @@ Transport* TransportRegistry::get(const String type, const osiSockAddr* address, Transport** TransportRegistry::get(const String type, const osiSockAddr* address, int32& size) { - Lock guard(&_mutex); + Lock guard(_mutex); _transportsIter = _transports.find(address); if(_transportsIter != _transports.end()) { @@ -78,7 +78,7 @@ Transport** TransportRegistry::get(const String type, const osiSockAddr* address Transport* TransportRegistry::remove(Transport* transport) { - Lock guard(&_mutex); + Lock guard(_mutex); const int16 priority = transport->getPriority(); const osiSockAddr* address = transport->getRemoteAddress(); Transport* retTransport = NULL; @@ -111,7 +111,7 @@ Transport* TransportRegistry::remove(Transport* transport) void TransportRegistry::clear() { - Lock guard(&_mutex); + Lock guard(_mutex); for(_transportsIter = _transports.begin(); _transportsIter != _transports.end(); _transportsIter++) { delete _transportsIter->second; @@ -123,14 +123,14 @@ void TransportRegistry::clear() int TransportRegistry::numberOfActiveTransports() { - Lock guard(&_mutex); + Lock guard(_mutex); return (int32)_allTransports.size(); } Transport** TransportRegistry::toArray(const String type, int32& size) { // TODO support type - Lock guard(&_mutex); + Lock guard(_mutex); size = _allTransports.size(); Transport** transportArray = new Transport*[size]; int i = 0; @@ -143,7 +143,7 @@ Transport** TransportRegistry::toArray(const String type, int32& size) Transport** TransportRegistry::toArray(int32& size) { - Lock guard(&_mutex); + Lock guard(_mutex); size = _allTransports.size(); if(size == 0) diff --git a/testApp/client/MockClientImpl.cpp b/testApp/client/MockClientImpl.cpp index f485f9e..6b5de67 100644 --- a/testApp/client/MockClientImpl.cpp +++ b/testApp/client/MockClientImpl.cpp @@ -271,7 +271,7 @@ class MockMonitor : public Monitor, public MonitorElement BitSet* m_changedBitSet; BitSet* m_overrunBitSet; bool m_first; - Mutex* m_lock; + Mutex m_lock; int m_count; private: @@ -286,7 +286,7 @@ class MockMonitor : public Monitor, public MonitorElement m_changedBitSet(new BitSet(pvStructure->getNumberFields())), m_overrunBitSet(new BitSet(pvStructure->getNumberFields())), m_first(true), - m_lock(new Mutex()), + m_lock(), m_count(0) { PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor); @@ -335,7 +335,6 @@ class MockMonitor : public Monitor, public MonitorElement { stop(); - delete m_lock; delete m_overrunBitSet; delete m_changedBitSet; delete this; diff --git a/testApp/remote/testRemoteClientImpl.cpp b/testApp/remote/testRemoteClientImpl.cpp index af6740a..c4c7ae0 100644 --- a/testApp/remote/testRemoteClientImpl.cpp +++ b/testApp/remote/testRemoteClientImpl.cpp @@ -116,7 +116,7 @@ class ChannelGetRequesterImpl : public ChannelGetRequester virtual void getDone(const epics::pvData::Status& status) { std::cout << "getDone(" << status.toString() << ")" << std::endl; - Lock guard(&m_mutex); + Lock guard(m_mutex); if (m_pvStructure) { String str;