$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Darin Adler (darin_at_[hidden])
Date: 2001-10-11 12:12:29
>> @@ -38,7 +41,7 @@
>>
>> static void do_once()
>> {
>> - once_callback cb =
>> reinterpret_cast<once_callback>(pthread_getspecific(key)
>> );
>> + once_callback cb =
>> reinterpret_cast<once_callback_wrapper*>(pthread_getspec
>> ific(key))->cb;
>> (*cb)();
This should be:
static void do_once()
{
once_callback_wrapper* wrapper = static_cast<once_callback_wrapper*>
(pthread_getspecific(key));
(*wrapper->cb)();
delete wrapper;
}
We need to delete the wrapper, and there's no need to resort to
reinterpret_cast.
> Thanks, this saves me the time to work it out myself ;). I'll get
> this patch into CVS before the weeks end.
I wasn't going to say anything before, but if you're going to use this
patch, I suggest my corrected version of do_once.
-- Darin