Boost logo

Boost :

Subject: Re: [boost] [gsoc] Boost.Process done
From: Boris Schaeling (boris_at_[hidden])
Date: 2010-08-15 11:34:10


On Sun, 15 Aug 2010 17:23:42 +0200, Roland Bock <rbock_at_[hidden]> wrote:

> [...]Can you give me a hint what the problem was with multi-threading in
> previous versions?

See <http://www.opengroup.org/onlinepubs/000095399/functions/fork.html>:

"A process shall be created with a single thread. If a multi-threaded
process calls fork(), the new process shall contain a replica of the
calling thread and its entire address space, possibly including the states
of mutexes and other resources. Consequently, to avoid errors, the child
process may only execute async-signal-safe operations until such time as
one of the exec functions is called."

All previous versions of Boost.Process had called non-async-signal-safe
functions between fork() and exec().

Boris


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