Boost logo

Boost :

Subject: Re: [boost] Heads up: 1.55.0 deadlines approaching
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-09-26 12:05:40


Le 26/09/13 17:46, Daniel James a écrit :
> On 26 September 2013 15:49, Vicente J. Botet Escriba
> <vicente.botet_at_[hidden]> wrote:
>> Could I merge this fix once the regression test have cycled
>>
>> Committed revision 85962. Thread: future::then should join the thread before
>> destruction.
>> https://svn.boost.org/trac/boost/changeset/85962
> Is this a bug fix, or a standards compliance fix? If the former than
> yes, such fixes are fine. If the latter then I'm inclined to say yes,
> but another release manager might be more knowledgeable than me, or
> have another opinion?
It is a bug fix.
>
> Actually, I just had a look at the patch, and I don't think I
> understand it. Calling 'join' in the destructor for
> 'future_async_continuation_shared_state' seems redundant since it
> inherits from 'future_async_shared_state_base' and its destructor
> calls 'join'. Am I missing something?
>
Yes, here is the problem the data associated to the
future_async_continuation_shared_state will be destroyed before the
future_async_shared_state_base would try to join. As the thread function
associated to the continuation uses these variables there is undefined
behavior (a big bug :( ).

Currently the regression test on clang- darwin- asan11 are failing on
some the future::then tests. I hope that this change would fix them.
We can anyway wait until this tester runs tomorrow.

Best,
Vicente


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