KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am using a boost::interpocess::scoped_lock using a named_mutex and a timeout ; I am running in Linux OS. During one of my tests I had a crash: since then, everytime I try to run again the application, it gets stuck on the point where I created the lock; it looks like the mutex remained acquired some way ( no possible process using it is running ). On top of that if you look at the code below I am expecting that after 150 microseconds, the timed scoped_lock returns to give me an error..but this is not the case..it just hangs there. #include <boost/interprocess/sync/named_mutex.hpp> namespace bi = boost::interprocess; bi::named_mutex m_mutex; try{ boost::posix_time::ptime pt( boost::posix_time::microsec_clock::local_time() ) ; pt+= boost::posix_time::microseconds( 150 ); bi::scoped_lock< bi::named_mutex > lock( m_mutex, pt ); if( !lock.owns() ){ FATAL( "I didn't acquire the lock." ); return EXIT_FAILURE; } .... My questions are the following: How to make sure that boost::interprocess named mutex is destroyed? ( so how to see the shared mutex across the processes and how to destroy them ) Why acquiring the mutex doesn't return after 150 microseconds? Is here any something wrong in the code below? Thanks a lot AFG
Tags (comma-separated)
Save Edits
Cancel