From 88bb39e3ce8be93c28f002fc09571b41c8fcaeb3 Mon Sep 17 00:00:00 2001 From: "William E. Kempf" Date: Wed, 8 Jan 2003 22:22:54 +0000 Subject: [PATCH] Fixed bug with cleanup_slots definition order on POSIX implementations. [SVN r16807] --- src/tss.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/tss.cpp b/src/tss.cpp index 8fefec2a..5f45c901 100644 --- a/src/tss.cpp +++ b/src/tss.cpp @@ -40,6 +40,17 @@ struct tss_data_t tss_data_t* tss_data = 0; boost::once_flag tss_data_once = BOOST_ONCE_INIT; +extern "C" void cleanup_slots(void* p) +{ + tss_slots* slots = static_cast(p); + for (tss_slots::size_type i = 0; i < slots->size(); ++i) + { + boost::mutex::scoped_lock lock(tss_data->mutex); + (*tss_data->cleanup_handlers[i])((*slots)[i]); + (*slots)[i] = 0; + } +} + void init_tss_data() { std::auto_ptr temp(new tss_data_t); @@ -63,17 +74,6 @@ void init_tss_data() tss_data = temp.release(); } -extern "C" void cleanup_slots(void* p) -{ - tss_slots* slots = static_cast(p); - for (tss_slots::size_type i = 0; i < slots->size(); ++i) - { - boost::mutex::scoped_lock lock(tss_data->mutex); - (*tss_data->cleanup_handlers[i])((*slots)[i]); - (*slots)[i] = 0; - } -} - #if defined(BOOST_HAS_WINTHREADS) void __cdecl tss_thread_exit() {