Tem como testar cadeados feitos com mutex?
Por exemplo, esse em VC++.
class RwMutex {
std::mutex rcm , wm ;
unsigned int rc ;
public:
__inline RwMutex( void ): rcm() , wm() , rc(0) {}
__inline void reader_lock( void ){
rcm.lock() ;
if( ++rc-1 == 0 ) wm.lock() ;
rcm.unlock() ;
}
__inline void reader_unlock( void ){
rcm.lock() ;
if( --rc == 0 ) wm.unlock() ;
rcm.unlock() ;
}
__forceinline void writer_lock( void ){
wm.lock() ;
}
__forceinline void writer_unlock( void ){
wm.unlock() ;
}
} ;
Dá para saber se ele possibilita deadlock? Se ele corretamente usado realmente impede escritas simultâ…
Por exemplo, esse em VC++.
class RwMutex {
std::mutex rcm , wm ;
unsigned int rc ;
public:
__inline RwMutex( void ): rcm() , wm() , rc(0) {}
__inline void reader_lock( void ){
rcm.lock() ;
if( ++rc-1 == 0 ) wm.lock() ;
rcm.unlock() ;
}
__inline void reader_unlock( void ){
rcm.lock() ;
if( --rc == 0 ) wm.unlock() ;
rcm.unlock() ;
}
__forceinline void writer_lock( void ){
wm.lock() ;
}
__forceinline void writer_unlock( void ){
wm.unlock() ;
}
} ;
Dá para saber se ele possibilita deadlock? Se ele corretamente usado realmente impede escritas simultâ…