Boost logo

Boost :

Subject: Re: [boost] [thread] terminating destructor
From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2012-10-25 04:11:20


2012/10/25 Olaf van der Spek <ml_at_[hidden]>

> On Thu, Oct 25, 2012 at 9:56 AM, Andrzej Krzemienski <akrzemi1_at_[hidden]>
> wrote:
> > The third situation below shows a non blocking ~future. But such
> execution
> > is *disallowed *by the standard because the completion of launched thread
> > would not synchronize with the last release of the shared state.
>
> The big question is: why?
>
> Can't the destructor detach from the shared state and let the state be
> cleaned up by the launched thread?

According to my (limited) understanding of the standard: no. Because, as
per requirement in Sect 30.6.8 paragraph 5, the "launched" thread
completion must synchronize with (happen before) the last function that
releases the shared state.

If the launched thread finishes before the release, the thread cannot
perform this release.

Regards,
&rzej


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