Boost logo

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