From b7781c854fc8dc9c02f8abe363c46b8f4f28e859 Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Fri, 24 Apr 2009 13:55:37 -0230 Subject: Bug 2812 - add abilty to name thread --- cpp/src/Freeze/BackgroundSaveEvictorI.cpp | 2 ++ cpp/src/Freeze/SharedDbEnv.cpp | 1 + cpp/src/Glacier2/RequestQueue.cpp | 1 + cpp/src/Glacier2/SessionRouterI.cpp | 1 + cpp/src/Ice/EndpointI.cpp | 1 + cpp/src/Ice/GC.cpp | 3 ++- cpp/src/Ice/SelectorThread.cpp | 1 + cpp/src/Ice/Service.cpp | 1 + cpp/src/Ice/ThreadPool.cpp | 1 + cpp/src/IceGrid/Activator.cpp | 1 + cpp/src/IceGrid/Client.cpp | 1 + cpp/src/IceGrid/PlatformInfo.cpp | 4 +++- cpp/src/IceGrid/ReapThread.cpp | 1 + cpp/src/IceGrid/SessionManager.h | 1 + cpp/src/IceGrid/WaitQueue.cpp | 4 +++- cpp/src/IceUtil/Thread.cpp | 36 +++++++++++++++++++++++++++++++ cpp/src/IceUtil/Timer.cpp | 4 +++- 17 files changed, 60 insertions(+), 4 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp index a6ddfea7a67..996ff8b0b46 100644 --- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp +++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp @@ -87,6 +87,7 @@ handleFatalError(const Freeze::BackgroundSaveEvictorPtr& evictor, const Ice::Com // Freeze::WatchDogThread::WatchDogThread(long timeout, BackgroundSaveEvictorI& evictor) : + Thread("Freeze background save evictor watchdog thread"), _timeout(IceUtil::Time::milliSeconds(timeout)), _evictor(evictor), _done(false), @@ -153,6 +154,7 @@ Freeze::BackgroundSaveEvictorI::BackgroundSaveEvictorI(const ObjectAdapterPtr& a const ServantInitializerPtr& initializer, const vector& indices, bool createDb) : + Thread("Freeze background save evictor thread"), EvictorI(adapter, envName, dbEnv, filename, FacetTypeMap(), initializer, indices, createDb), _currentEvictorSize(0), _savingThreadDone(false) diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp index b163fbe3d6d..1763ab688a6 100644 --- a/cpp/src/Freeze/SharedDbEnv.cpp +++ b/cpp/src/Freeze/SharedDbEnv.cpp @@ -620,6 +620,7 @@ Freeze::SharedDbEnv::cleanup() Freeze::CheckpointThread::CheckpointThread(SharedDbEnv& dbEnv, const Time& checkpointPeriod, Int kbyte, Int trace) : + Thread("Freeze checkpoint thread"), _dbEnv(dbEnv), _done(false), _checkpointPeriod(checkpointPeriod), diff --git a/cpp/src/Glacier2/RequestQueue.cpp b/cpp/src/Glacier2/RequestQueue.cpp index 2113dc3faa2..716e66144ef 100644 --- a/cpp/src/Glacier2/RequestQueue.cpp +++ b/cpp/src/Glacier2/RequestQueue.cpp @@ -283,6 +283,7 @@ Glacier2::RequestQueue::flushRequests(set& batchProxies) } Glacier2::RequestQueueThread::RequestQueueThread(const IceUtil::Time& sleepTime) : + Thread("Glacier2 request queue thread"), _sleepTime(sleepTime), _destroy(false), _sleep(false) diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index 9bc16b9b66c..2bf505aea09 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -1173,6 +1173,7 @@ Glacier2::SessionRouterI::finishCreateSession(const ConnectionPtr& connection, c Glacier2::SessionRouterI::SessionThread::SessionThread(const SessionRouterIPtr& sessionRouter, const IceUtil::Time& sessionTimeout) : + Thread("Glacier2 session thread"), _sessionRouter(sessionRouter), _sessionTimeout(sessionTimeout) { diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp index 41387f6511b..ed96ae5774d 100644 --- a/cpp/src/Ice/EndpointI.cpp +++ b/cpp/src/Ice/EndpointI.cpp @@ -30,6 +30,7 @@ IceInternal::EndpointI::connectors(const vector& addrs) } IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& instance) : + Thread("Ice endpoint host resolver thread"), _instance(instance), _destroyed(false) { diff --git a/cpp/src/Ice/GC.cpp b/cpp/src/Ice/GC.cpp index a36d9ecccac..139b61bddd1 100644 --- a/cpp/src/Ice/GC.cpp +++ b/cpp/src/Ice/GC.cpp @@ -141,7 +141,8 @@ IceInternal::GCShared::__gcDecRef() // -IceInternal::GC::GC(int interval, StatsCallback cb) +IceInternal::GC::GC(int interval, StatsCallback cb) : + Thread("Ice garbage collector thread") { StaticMutex::Lock sync(numCollectorsMutex); if(numCollectors++ > 0) diff --git a/cpp/src/Ice/SelectorThread.cpp b/cpp/src/Ice/SelectorThread.cpp index 4c740810c69..8b1c815f7af 100644 --- a/cpp/src/Ice/SelectorThread.cpp +++ b/cpp/src/Ice/SelectorThread.cpp @@ -267,6 +267,7 @@ IceInternal::SelectorThread::run() } IceInternal::SelectorThread::HelperThread::HelperThread(const SelectorThreadPtr& selectorThread) : + IceUtil::Thread("Ice selector thread"), _selectorThread(selectorThread) { } diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp index 44009d2dfd8..6dd08b6e386 100644 --- a/cpp/src/Ice/Service.cpp +++ b/cpp/src/Ice/Service.cpp @@ -112,6 +112,7 @@ private: public: StatusThread(ServiceStatusManager* manager) : + Thread("Ice service status manager thread"), _manager(manager) { } diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 1d2352d2439..11c08dc63a9 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -767,6 +767,7 @@ IceInternal::ThreadPool::read(const EventHandlerPtr& handler) } IceInternal::ThreadPool::EventHandlerThread::EventHandlerThread(const ThreadPoolPtr& pool) : + Thread(pool->_prefix + " thread"), _pool(pool) { } diff --git a/cpp/src/IceGrid/Activator.cpp b/cpp/src/IceGrid/Activator.cpp index b8dcf74b241..00a34e7b66d 100644 --- a/cpp/src/IceGrid/Activator.cpp +++ b/cpp/src/IceGrid/Activator.cpp @@ -50,6 +50,7 @@ class TerminationListenerThread : public IceUtil::Thread public: TerminationListenerThread(Activator& activator) : + IceUtil::Thread("IceGrid termination listener thread"), _activator(activator) { } diff --git a/cpp/src/IceGrid/Client.cpp b/cpp/src/IceGrid/Client.cpp index cba7349ad0b..29ee4a29a6a 100644 --- a/cpp/src/IceGrid/Client.cpp +++ b/cpp/src/IceGrid/Client.cpp @@ -45,6 +45,7 @@ class SessionKeepAliveThread : public IceUtil::Thread, public IceUtil::Monitorname().empty()) + { + cerr << thread->name() << " terminating" << endl; + } #if defined(_MSC_VER) && (_MSC_VER < 1300) terminate(); #else @@ -255,6 +268,12 @@ IceUtil::Thread::_done() _running = false; } +const string& +IceUtil::Thread::name() const +{ + return _name; +} + #else IceUtil::ThreadControl::ThreadControl(pthread_t thread) : @@ -340,6 +359,13 @@ IceUtil::Thread::Thread() : { } +IceUtil::Thread::Thread(const string& name) : + _name(name), + _started(false), + _running(false) +{ +} + IceUtil::Thread::~Thread() { } @@ -369,6 +395,10 @@ startHook(void* arg) } catch(...) { + if(!thread->name().empty()) + { + cerr << thread->name() << " terminating" << endl; + } std::terminate(); } @@ -495,4 +525,10 @@ IceUtil::Thread::_done() _running = false; } +const string& +IceUtil::Thread::name() const +{ + return _name; +} + #endif diff --git a/cpp/src/IceUtil/Timer.cpp b/cpp/src/IceUtil/Timer.cpp index 7416895b050..41200f5648b 100644 --- a/cpp/src/IceUtil/Timer.cpp +++ b/cpp/src/IceUtil/Timer.cpp @@ -13,7 +13,9 @@ using namespace std; using namespace IceUtil; -Timer::Timer() : _destroyed(false) +Timer::Timer() : + Thread("IceUtil timer thread"), + _destroyed(false) { __setNoDelete(true); start(); -- cgit v1.2.3