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 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
Le 23/04/2016 23:22, Vicente J. Botet Escriba a écrit : 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(¤t_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(¤t_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