|
Boost : |
From: David Bien (davidbien_at_[hidden])
Date: 2024-04-26 16:51:11
Not really sure where to bring this issue up.
I have a singleton globals object with a session manager, share manager, etc. that is destroyed atexit() on final reference release.
There are a few mutexes in the implementation. This functions fine on Windows, MacOS, etc - the globals object is released during atexit() and shutdown proceeds normally.
Under Linux when BOOST_THREAD_HAS_EINTR_BUG is defined we SIGABRT at this:
~mutex()
{
BOOST_VERIFY(!posix::pthread_mutex_destroy(&m));
}
The verify fails and we abort().
When I define BOOST_THREAD_HAS_NO_EINTR_BUG we do not abort - which means that posix::pthread_mutex_destroy() returns 0 in the case where BOOST_THREAD_HAS_NO_EINTR_BUG is defined and returns non-zero in the case of it not being defined.
Guidance? Also point me at a better place for this discussion if there is such a place.
Thanks,
David Bien
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk