Boost logo

Boost :

From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-06-09 06:32:55


Sami Väisänen <sami.vaisanen_at_[hidden]> writes:

> I have an application that forks a child process. The child exists only
> for a little while, (does dup2() calls to redirect stdout/stderr output
> into pipes and then makes a system() call) and then exits with exit().
> However at exit I get an assertion failure in boost.thread library (the
> assertion happens in the child process)
>
> ../boost_1_34_1/libs/thread/src/condition.cpp:351:boost::detail::condition_impl::~condition_impl():
> Assertion `res == 0'

That error indicates that the underlying condition variable couldn't
be destroyed properly. Are you sure that your OS correctly clones
condition variables when you do a fork?

Forking generally doesn't play well with multi-threaded apps anyway, since
fork only clones the current thread.

Anthony

-- 
Anthony Williams            | Just Software Solutions Ltd
Custom Software Development | http://www.justsoftwaresolutions.co.uk
Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk