Ticket #2739: 2739.patch

File 2739.patch, 1001 bytes (added by viboes, 13 years ago)
  • thread.cpp

     
    2424
    2525#include "timeconv.inl"
    2626
     27#include <cstdlib>
     28
    2729namespace boost
    2830{
     31    detail::thread_data_base* main_thread_data=0;
    2932    namespace detail
    3033    {
    3134        thread_data_base::~thread_data_base()
     
    9497                        thread_info->self.reset();
    9598                    }
    9699                }
     100                void main_tls_destructor(void) {
     101                    if (main_thread_data!=0)
     102                        tls_destructor(main_thread_data);
     103                }
     104
    97105            }
    98106   
    99107
     
    169177            detail::thread_data_base* const me(new externally_launched_thread());
    170178            me->self.reset(me);
    171179            set_current_thread_data(me);
     180            main_thread_data=me;
     181            BOOST_VERIFY(!atexit(&detail::main_tls_destructor));
     182
    172183            return me;
    173184        }
    174185