[complement-svn] SF.net SVN: complement: [1587] branches/complement-xmt/explore
Status: Pre-Alpha
Brought to you by:
complement
From: <com...@us...> - 2007-06-29 09:52:20
|
Revision: 1587 http://svn.sourceforge.net/complement/?rev=1587&view=rev Author: complement Date: 2007-06-29 02:52:17 -0700 (Fri, 29 Jun 2007) Log Message: ----------- replace Locker by scoped_lock Modified Paths: -------------- branches/complement-xmt/explore/include/mt/xmt.h branches/complement-xmt/explore/include/sockios/sockmgr.cc branches/complement-xmt/explore/lib/mt/ChangeLog branches/complement-xmt/explore/lib/mt/thr_mgr.cc branches/complement-xmt/explore/lib/mt/uid.cc branches/complement-xmt/explore/lib/sockios/ChangeLog branches/complement-xmt/explore/lib/stem/ChangeLog branches/complement-xmt/explore/lib/stem/EvManager.cc branches/complement-xmt/explore/lib/stem/NetTransport.cc branches/complement-xmt/explore/test/sockios/sockios_test.cc Modified: branches/complement-xmt/explore/include/mt/xmt.h =================================================================== --- branches/complement-xmt/explore/include/mt/xmt.h 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/include/mt/xmt.h 2007-06-29 09:52:17 UTC (rev 1587) @@ -56,7 +56,7 @@ #ifdef _REENTRANT -# define MT_REENTRANT(point,nm) xmt::Locker nm(point) +# define MT_REENTRANT(point,nm) xmt::scoped_lock nm(point) # define MT_REENTRANT_RS(point,nm) xmt::LockerRS nm(point) # define MT_REENTRANT_SDS(point,nm) xmt::LockerSDS nm(point) // obsolete, use MT_REENTRANT_RS # define MT_LOCK(point) point.lock() @@ -913,7 +913,6 @@ typedef __Spinlock<true,false> SpinlockRS; #endif // __FIT_RWLOCK -typedef basic_lock<Mutex> Locker; typedef basic_lock<Mutex> scoped_lock; typedef basic_lock<MutexRS> LockerRS; typedef basic_lock<MutexRS> LockerSDS; // obsolete, use instead LockerRS @@ -1567,7 +1566,7 @@ MT_LOCK( _lock ); #endif #if defined(__FIT_UITHREADS) || defined(_PTHREADS) - MT_REENTRANT( _lock, _x1 ); + scoped_lock _x1( _lock ); #endif if ( _val == false ) { #ifdef __FIT_WIN32THREADS @@ -1623,7 +1622,7 @@ MT_LOCK( _lock ); #endif #if defined(__FIT_UITHREADS) || defined(_PTHREADS) - MT_REENTRANT( _lock, _x1 ); + scoped_lock _x1( _lock ); #endif if ( _val == false ) { #ifdef WIN32 @@ -1699,7 +1698,7 @@ return 0; #endif #ifdef _PTHREADS - MT_REENTRANT( _lock, _x1 ); // ?? + scoped_lock _x1( _lock ); // ?? _val = false; int ret = pthread_cond_timedwait( &_cond, &_lock._M_lock, abstime ); if ( ret == ETIMEDOUT ) { @@ -1708,7 +1707,7 @@ return ret; #endif // _PTHREADS #ifdef __FIT_UITHREADS - MT_REENTRANT( _lock, _x1 ); + scoped_lock _x1( _lock ); _val = false; int ret; while ( !_val ) { Modified: branches/complement-xmt/explore/include/sockios/sockmgr.cc =================================================================== --- branches/complement-xmt/explore/include/sockios/sockmgr.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/include/sockios/sockmgr.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -100,7 +100,7 @@ // cerr << __FILE__ << ":" << __LINE__ << endl; // } if ( j->revents != 0 ) { - xmt::Locker _l( _c_lock ); + xmt::scoped_lock _l( _c_lock ); // We should distinguish closed socket from income message typename container_type::iterator i = find_if( _M_c.begin(), _M_c.end(), bind2nd( _M_comp, j->fd ) ); @@ -217,7 +217,7 @@ } try { - xmt::Locker _l( _c_lock ); + xmt::scoped_lock _l( _c_lock ); _M_c.push_back( _Connect() ); _M_c.back().open( _sd, addr.any ); _Connect *cl_new = &_M_c.back(); @@ -418,7 +418,7 @@ me->_conn_pool.erase( std::remove( me->_conn_pool.begin(), me->_conn_pool.end(), c ), me->_conn_pool.end() ); me->_dlock.unlock(); - xmt::Locker _l( me->_c_lock ); + xmt::scoped_lock _l( me->_c_lock ); me->_M_c.erase( c ); } } Modified: branches/complement-xmt/explore/lib/mt/ChangeLog =================================================================== --- branches/complement-xmt/explore/lib/mt/ChangeLog 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/mt/ChangeLog 2007-06-29 09:52:17 UTC (rev 1587) @@ -1,3 +1,7 @@ +2007-06-29 Petr Ovtchenkov <pt...@is...> + + * xmt.h, xmt.cc, uid.cc, thr_mgr.cc: replace Locker by scoped_lock. + 2007-06-14 Petr Ovtchenkov <pt...@is...> * xmt.h, xmt.cc, shm.h: step to interface like boost or Modified: branches/complement-xmt/explore/lib/mt/thr_mgr.cc =================================================================== --- branches/complement-xmt/explore/lib/mt/thr_mgr.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/mt/thr_mgr.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -121,7 +121,7 @@ __FIT_DECLSPEC void ThreadMgr::launch( Thread::entrance_type entrance, const void *p, size_t psz, unsigned flags, size_t stack_sz ) { - Locker lk( _lock ); + scoped_lock lk( _lock ); _M_c.erase( remove_if( _M_c.begin(), _M_c.end(), rm_if_bad_thread() ), _M_c.end() ); // Thread *t = new Thread( entrance, p, psz, flags, stack_sz ); // cerr << (void *)t << " created\n"; @@ -132,13 +132,13 @@ __FIT_DECLSPEC void ThreadMgr::garbage_collector() { - Locker lk( _lock ); + scoped_lock lk( _lock ); _M_c.erase( remove_if( _M_c.begin(), _M_c.end(), rm_if_bad_thread() ), _M_c.end() ); } ThreadMgr::container_type::size_type ThreadMgr::size() const { - Locker lk( _lock ); + scoped_lock lk( _lock ); // ThreadMgr::container_type::size_type sz = count_if( _M_c.begin(), _M_c.end(), good_thread() ); // cerr << "Sz: " << sz << endl; @@ -148,7 +148,7 @@ __FIT_DECLSPEC void ThreadMgr::signal( int sig ) { // cerr << "Signal!" << endl; - Locker lk( _lock ); + scoped_lock lk( _lock ); for_each( _M_c.begin(), _M_c.end(), bind2nd( thread_signal(), sig ) ); } Modified: branches/complement-xmt/explore/lib/mt/uid.cc =================================================================== --- branches/complement-xmt/explore/lib/mt/uid.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/mt/uid.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -38,7 +38,7 @@ { static Mutex _lk; - Locker lock( _lk ); + scoped_lock lock( _lk ); ifstream f( "/proc/sys/kernel/random/boot_id" ); string tmp; Modified: branches/complement-xmt/explore/lib/sockios/ChangeLog =================================================================== --- branches/complement-xmt/explore/lib/sockios/ChangeLog 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/sockios/ChangeLog 2007-06-29 09:52:17 UTC (rev 1587) @@ -1,3 +1,7 @@ +2007-06-29 Petr Ovtchenkov <pt...@is...> + + * sockmgr.cc, sockios_test.cc: replace Locker by scoped_lock. + 2007-02-12 Petr Ovtchenkov <pt...@is...> * sockmgr.h, _sockmgr.cc: use Init technique to initialize Modified: branches/complement-xmt/explore/lib/stem/ChangeLog =================================================================== --- branches/complement-xmt/explore/lib/stem/ChangeLog 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/stem/ChangeLog 2007-06-29 09:52:17 UTC (rev 1587) @@ -1,3 +1,7 @@ +2007-06-29 Petr Ovtchenkov <pt...@is...> + + * NetTransport.cc, EvManager.cc: replace Locker by scoped_lock. + 2007-03-12 Petr Ovtchenkov <pt...@is...> * EvManager.h, EvManager.cc: trace-related locks, flags and Modified: branches/complement-xmt/explore/lib/stem/EvManager.cc =================================================================== --- branches/complement-xmt/explore/lib/stem/EvManager.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/stem/EvManager.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -111,19 +111,19 @@ { addr_type id; { - Locker lk( _lock_heap ); + scoped_lock lk( _lock_heap ); id = create_unique(); heap[id] = object; } { - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); gaddr_type& gaddr = _ex_heap[id]; gaddr.hid = xmt::hostid(); gaddr.pid = xmt::getpid(); gaddr.addr = id; } - Locker lk( _lock_iheap ); + scoped_lock lk( _lock_iheap ); iheap[id] = info; return id; @@ -142,21 +142,21 @@ if ( (id & extbit) ) { return badaddr; } else { - Locker _x1( _lock_heap ); + scoped_lock _x1( _lock_heap ); if ( unsafe_is_avail( id ) ) { return badaddr; } heap[id] = object; } { - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); gaddr_type& gaddr = _ex_heap[id]; gaddr.hid = xmt::hostid(); gaddr.pid = xmt::getpid(); gaddr.addr = id; } - Locker _x1( _lock_iheap ); + scoped_lock _x1( _lock_iheap ); iheap[id] = info; return id; @@ -176,14 +176,14 @@ { addr_type id; { - Locker _x1( _lock_xheap ); + scoped_lock _x1( _lock_xheap ); id = create_unique_x(); _ex_heap[id] = addr; _tr_heap.insert( make_pair( addr, make_pair( id, tr ) ) ); _ch_heap.insert( make_pair( tr.link, addr ) ); } { - Locker _x1( _lock_iheap ); + scoped_lock _x1( _lock_iheap ); iheap[id] = info; } @@ -205,13 +205,13 @@ addr_type id; if ( addr.hid == xmt::hostid() && addr.pid == xmt::getpid() ) { // local if ( addr.addr & extbit ) { // may be transit object - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); pair<uuid_tr_heap_type::const_iterator,uuid_tr_heap_type::const_iterator> range = _tr_heap.equal_range( addr ); if ( range.first != range.second ) { // transport present return min_element( range.first, range.second, tr_compare )->second.first; } } else { // may be local object - Locker lk( _lock_heap ); + scoped_lock lk( _lock_heap ); local_heap_type::const_iterator i = heap.find( addr.addr ); if ( i != heap.end() ) { return i->first; @@ -219,7 +219,7 @@ } return badaddr; // don't know what I can made } else { // foreign object - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); pair<uuid_tr_heap_type::const_iterator,uuid_tr_heap_type::const_iterator> tr_range = _tr_heap.equal_range( addr ); if ( tr_range.first != tr_range.second ) { // transport present return min_element( tr_range.first, tr_range.second, tr_compare )->second.first; @@ -239,7 +239,7 @@ _ex_heap[id] = addr; } { - Locker lk( _lock_iheap ); + scoped_lock lk( _lock_iheap ); iheap[id] = info; } return id; @@ -256,7 +256,7 @@ bool EvManager::Unsubscribe( addr_type id ) { if ( (id & extbit) ) { - Locker _x1( _lock_xheap ); + scoped_lock _x1( _lock_xheap ); gaddr_type& addr = _ex_heap[id]; pair<uuid_tr_heap_type::iterator,uuid_tr_heap_type::iterator> range = _tr_heap.equal_range( addr ); @@ -277,12 +277,12 @@ } _ex_heap.erase( id ); } else { - Locker _x1( _lock_heap ); + scoped_lock _x1( _lock_heap ); heap.erase( id ); // Notify remotes? } - Locker _x1( _lock_iheap ); + scoped_lock _x1( _lock_iheap ); iheap.erase( id ); return true; @@ -294,7 +294,7 @@ if ( addr.hid == xmt::hostid() && addr.pid == xmt::getpid() ) { // this host, this process if ( (addr.addr & extbit) == 0 ) { // looks like local object - Locker _x1( _lock_heap ); + scoped_lock _x1( _lock_heap ); local_heap_type::const_iterator l = heap.find( addr.addr ); if ( l != heap.end() ) { return addr.addr; // l->first @@ -307,7 +307,7 @@ // peer don't know host ids, used as access to 'standard' services and initial // communication if ( (addr.addr & extbit) == 0 && addr.addr <= _low ) { - Locker _x1( _lock_heap ); + scoped_lock _x1( _lock_heap ); local_heap_type::const_iterator l = heap.find( addr.addr ); if ( l != heap.end() ) { return addr.addr; // l->first @@ -318,7 +318,7 @@ } #endif - Locker _x1( _lock_xheap ); + scoped_lock _x1( _lock_xheap ); pair<uuid_tr_heap_type::const_iterator,uuid_tr_heap_type::const_iterator> range = _tr_heap.equal_range( addr ); if ( range.first != range.second ) { // transport present return min_element( range.first, range.second, tr_compare )->second.first; @@ -329,7 +329,7 @@ __FIT_DECLSPEC gaddr_type EvManager::reflect( addr_type addr ) const { - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); ext_uuid_heap_type::const_iterator i = _ex_heap.find( addr ); if ( i != _ex_heap.end() ) { return i->second; @@ -340,45 +340,45 @@ __FIT_DECLSPEC void EvManager::Remove( void *channel ) { - Locker _x1( _lock_xheap ); - Locker _x2( _lock_iheap ); + scoped_lock _x1( _lock_xheap ); + scoped_lock _x2( _lock_iheap ); unsafe_Remove( channel ); } void EvManager::settrf( unsigned f ) { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); _trflags |= f; } void EvManager::unsettrf( unsigned f ) { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); _trflags &= (0xffffffff & ~f); } void EvManager::resettrf( unsigned f ) { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); _trflags = f; } void EvManager::cleantrf() { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); _trflags = 0; } unsigned EvManager::trflags() const { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); return _trflags; } void EvManager::settrs( std::ostream *s ) { - Locker _x1( _lock_tr ); + scoped_lock _x1( _lock_tr ); _trs = s; } @@ -407,7 +407,7 @@ __FIT_DECLSPEC const detail::transport& EvManager::transport( addr_type id ) const { - Locker _x1( _lock_xheap ); + scoped_lock _x1( _lock_xheap ); if ( (id & extbit) != 0 ) { ext_uuid_heap_type::const_iterator i = _ex_heap.find( id ); if ( i == _ex_heap.end() ) { @@ -470,7 +470,7 @@ if ( !reinterpret_cast<NetTransport_base *>(link)->push( e, gaddr_dst, gaddr_src) ) { #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracenet) ) { *_trs << "Remove net channel " << link << endl; } @@ -493,7 +493,7 @@ catch ( std::logic_error& err ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << err.what() << " " << __FILE__ << ":" << __LINE__ << endl; @@ -507,7 +507,7 @@ catch ( std::runtime_error& err ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << err.what() << " " << __FILE__ << ":" << __LINE__ << endl; @@ -521,7 +521,7 @@ catch ( ... ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << "Unknown, uncatched exception: " << __FILE__ << ":" << __LINE__ << endl; @@ -545,7 +545,7 @@ try { #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracedispatch) ) { *_trs << object->classtype().name() << " (" << object << ")\n"; @@ -560,7 +560,7 @@ } catch ( std::logic_error& err ) { try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << err.what() << "\n" << object->classtype().name() << " (" << object << ")\n"; @@ -573,7 +573,7 @@ } catch ( ... ) { try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << "Unknown, uncatched exception during process:\n" << object->classtype().name() << " (" << object << ")\n"; @@ -588,7 +588,7 @@ catch ( std::logic_error& err ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << err.what() << "\n" << __FILE__ << ":" << __LINE__ << endl; @@ -602,7 +602,7 @@ catch ( std::runtime_error& err ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << err.what() << " " << __FILE__ << ":" << __LINE__ << endl; @@ -616,7 +616,7 @@ catch ( ... ) { // #ifdef __FIT_STEM_TRACE try { - Locker lk(_lock_tr); + scoped_lock lk(_lock_tr); if ( _trs != 0 && _trs->good() && (_trflags & tracefault) ) { *_trs << "Unknown, uncatched exception: " << __FILE__ << ":" << __LINE__ << endl; @@ -690,7 +690,7 @@ s << hex << showbase; { - Locker lk( _lock_heap ); + scoped_lock lk( _lock_heap ); for ( local_heap_type::const_iterator i = heap.begin(); i != heap.end(); ++i ) { s << i->first << "\t=> " << i->second << "\n"; @@ -699,7 +699,7 @@ s << "\nInfo map:\n"; { - Locker lk( _lock_iheap ); + scoped_lock lk( _lock_iheap ); for ( info_heap_type::const_iterator i = iheap.begin(); i != iheap.end(); ++i ) { s << i->first << "\t=> '" << i->second << "'\n"; @@ -707,7 +707,7 @@ } { - Locker lk( _lock_xheap ); + scoped_lock lk( _lock_xheap ); s << "\nExternal address map:\n"; for ( ext_uuid_heap_type::const_iterator i = _ex_heap.begin(); i != _ex_heap.end(); ++i ) { Modified: branches/complement-xmt/explore/lib/stem/NetTransport.cc =================================================================== --- branches/complement-xmt/explore/lib/stem/NetTransport.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/lib/stem/NetTransport.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -362,7 +362,7 @@ while ( me.pop( ev, dst, src ) ) { #ifdef __FIT_STEM_TRACE try { - xmt::Locker lk(manager()->_lock_tr); + xmt::scoped_lock lk(manager()->_lock_tr); if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracenet) ) { *manager()->_trs << "Pid/ppid: " << xmt::getpid() << "/" << xmt::getppid() << "\n"; manager()->dump( *manager()->_trs ) << endl; @@ -375,7 +375,7 @@ if ( xdst == badaddr ) { #ifdef __FIT_STEM_TRACE try { - xmt::Locker lk(manager()->_lock_tr); + xmt::scoped_lock lk(manager()->_lock_tr); if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & (EvManager::tracefault)) ) { *manager()->_trs << __FILE__ << ":" << __LINE__ << " (" @@ -398,7 +398,7 @@ } #ifdef __FIT_STEM_TRACE try { - xmt::Locker lk(manager()->_lock_tr); + xmt::scoped_lock lk(manager()->_lock_tr); if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & (EvManager::tracenet)) ) { *manager()->_trs << __FILE__ << ":" << __LINE__ << endl; } Modified: branches/complement-xmt/explore/test/sockios/sockios_test.cc =================================================================== --- branches/complement-xmt/explore/test/sockios/sockios_test.cc 2007-06-14 06:47:19 UTC (rev 1586) +++ branches/complement-xmt/explore/test/sockios/sockios_test.cc 2007-06-29 09:52:17 UTC (rev 1587) @@ -59,10 +59,10 @@ { public: Cnt( sockstream& ) - { xmt::Locker lk(lock); ++cnt; ++visits; } + { xmt::scoped_lock lk(lock); ++cnt; ++visits; } ~Cnt() - { xmt::Locker lk(lock); --cnt; } + { xmt::scoped_lock lk(lock); --cnt; } void connect( sockstream& ) { } @@ -71,7 +71,7 @@ { } static int get_visits() - { xmt::Locker lk(lock); return visits; } + { xmt::scoped_lock lk(lock); return visits; } static xmt::Mutex lock; static int cnt; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |