Boost logo

Boost :

Subject: Re: [boost] [1.61.0] Master branch is closed
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2016-04-23 18:11:51


Le 24/04/2016 00:06, Vicente J. Botet Escriba a écrit :
> Le 23/04/2016 23:29, Vicente J. Botet Escriba a écrit :
>> Le 23/04/2016 23:22, Vicente J. Botet Escriba a écrit :
>>> Le 23/04/2016 21:44, Vladimir Prus a écrit :
>>>> On 4/21/2016 8:17 PM, Vicente J. Botet Escriba wrote:
>>>>> Le 21/04/2016 08:39, Vladimir Prus a écrit :
>>>>>> On 4/21/2016 1:24 AM, Vicente J. Botet Escriba wrote:
>>>>>>> Le 20/04/2016 21:17, Vladimir Prus a écrit :
>>>>>>>>
>>>>>>>> Boosters,
>>>>>>>>
>>>>>>>> The master branch is now closed for all changes, except by
>>>>>>>> permission from a release manager.
>>>>>>>> Per schedule, the branch will be totally frozen on Saturday.
>>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I've come back from vacations (last Sunday) and I believed that
>>>>>>> the version 1.61 was already released.
>>>>>> >
>>>>>>> I have fixed two major bugs and some doc issues that I would
>>>>>>> like to merge into the master branch.
>>>>>>>
>>>>>>> Could I do the merge on Friday if the develop regressions are good?
>>>>>>
>>>>>> Vicente,
>>>>>>
>>>>>> you've listed quite a large number of changes in your email,
>>>>>> including some merge commits. This
>>>>>> looks like too large change to merge when the master branch is
>>>>>> closed. Possibly, you've copy-pasted
>>>>>> something from GitHub interface, and it did not came across as
>>>>>> intended.
>>>>>>
>>>>>> If you believe there are truly horrible bugs that would regress
>>>>>> boost.thread, could you specifically
>>>>>> list those bugs, along with commits fixing those bugs
>>>>>> specifically - and we can cherry-pick those
>>>>>> changes if so warranted.
>>>>>>
>>>>>>> The commits are the following:
>>>>>> ...
>>>>>>> viboes
>>>>>>> <https://github.com/boostorg/thread/commits/develop?author=viboes>
>>>>>>> committed 12 minutes ago
>>>>>>
>>>>>>
>>>>>> In particular, the above appears to show all your commits on
>>>>>> develop, not any
>>>>>> particular commit, so it's hard to understand what you're
>>>>>> proposing to merge.
>>>>>>
>>>>>
>>>>> Sorry, there were some pull merge that I need to fix and a lot of
>>>>> minor doc changes.
>>>>>
>>>>> BTW this commit
>>>>>
>>> I would prefer to do a global merge, but I understand it is too late.
>> Hr, I've forgotten that I did already a merge on master (without the
>> push evidently).
>>
>> Is there a way to undo a merge locally?
>> Otherwise I'm trying to update the whole repository again.
>>
> Could I apply the changes manually?
>
> const pthread_once_t
> pthread_once_init_value=PTHREAD_ONCE_INIT;
> struct BOOST_THREAD_DECL delete_epoch_tss_key_on_dlclose_t
> {
> delete_epoch_tss_key_on_dlclose_t()
> {
> }
> ~delete_epoch_tss_key_on_dlclose_t()
> {
> if(memcmp(&epoch_tss_key_flag,
> &pthread_once_init_value, sizeof(pthread_once_t)))
> {
> * void* data =
> (void*)pthread_getspecific(epoch_tss_key);**
> ** if (data)**
> ** delete_epoch_tss_data(data);**
> * pthread_key_delete(epoch_tss_key);
> }
> }
> };
>
> struct delete_current_thread_tls_key_on_dlclose_t
> {
> delete_current_thread_tls_key_on_dlclose_t()
> {
> }
> ~delete_current_thread_tls_key_on_dlclose_t()
> {
> const boost::once_flag uninitialized =
> BOOST_ONCE_INIT;
> if (memcmp(&current_thread_tls_init_flag,
> &uninitialized, sizeof(boost::once_flag)))
> {
> * void* data =
> pthread_getspecific(current_thread_tls_key);**
> ** if (data)**
> ** tls_destructor(data);**
> * pthread_key_delete(current_thread_tls_key);
> }
> }
> };
>
> scoped_thread& operator=(BOOST_RV_REF(scoped_thread) x)
> {
> * CallableThread on_destructor;**
> **
> ** on_destructor(t_);**
> * t_ = boost::move(BOOST_THREAD_RV(x).t_);
> return *this;
> }
>
Sorry for the format

              const pthread_once_t
pthread_once_init_value=PTHREAD_ONCE_INIT;
             struct BOOST_THREAD_DECL delete_epoch_tss_key_on_dlclose_t
             {
                 delete_epoch_tss_key_on_dlclose_t()
                 {
                 }
                 ~delete_epoch_tss_key_on_dlclose_t()
                 {
                     if(memcmp(&epoch_tss_key_flag,
&pthread_once_init_value, sizeof(pthread_once_t)))
                     {
+ void* data =
(void*)pthread_getspecific(epoch_tss_key);
+ if (data)
+ delete_epoch_tss_data(data);
                         pthread_key_delete(epoch_tss_key);
                     }
                 }
             };

             struct delete_current_thread_tls_key_on_dlclose_t
             {
                 delete_current_thread_tls_key_on_dlclose_t()
                 {
                 }
                 ~delete_current_thread_tls_key_on_dlclose_t()
                 {
                     const boost::once_flag uninitialized = BOOST_ONCE_INIT;
                     if (memcmp(&current_thread_tls_init_flag,
&uninitialized, sizeof(boost::once_flag)))
                     {
  + void* data =
pthread_getspecific(current_thread_tls_key);
  + if (data)
  + tls_destructor(data);
                         pthread_key_delete(current_thread_tls_key);
                     }
                 }
             };

     scoped_thread& operator=(BOOST_RV_REF(scoped_thread) x)
     {
+ CallableThread on_destructor;
+
+ on_destructor(t_);
       t_ = boost::move(BOOST_THREAD_RV(x).t_);
       return *this;
     }

Vicente


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