RCS file: /cvsroot/boost/boost/libs/thread/src/tss.cpp,v
retrieving revision 1.16.10.4
diff -u -r1.16.10.4 tss.cpp
|
|
|
31 | 31 | boost::mutex* tss_data_mutex = 0; |
32 | 32 | tss_data_cleanup_handlers_type* tss_data_cleanup_handlers = 0; |
33 | 33 | #if defined(BOOST_HAS_WINTHREADS) |
34 | | DWORD tss_data_native_key; |
| 34 | DWORD tss_data_native_key=TLS_OUT_OF_INDEXES; |
35 | 35 | #elif defined(BOOST_HAS_PTHREADS) |
36 | 36 | pthread_key_t tss_data_native_key; |
37 | 37 | #elif defined(BOOST_HAS_MPTASKS) |
… |
… |
|
60 | 60 | tss_data_mutex = 0; |
61 | 61 | #if defined(BOOST_HAS_WINTHREADS) |
62 | 62 | TlsFree(tss_data_native_key); |
| 63 | tss_data_native_key=TLS_OUT_OF_INDEXES; |
63 | 64 | #elif defined(BOOST_HAS_PTHREADS) |
64 | 65 | pthread_key_delete(tss_data_native_key); |
65 | 66 | #elif defined(BOOST_HAS_MPTASKS) |
… |
… |
|
78 | 79 | (*(*tss_data_cleanup_handlers)[i])((*slots)[i]); |
79 | 80 | (*slots)[i] = 0; |
80 | 81 | } |
| 82 | #if defined(BOOST_HAS_WINTHREADS) |
| 83 | TlsSetValue(tss_data_native_key,0); |
| 84 | #endif |
81 | 85 | tss_data_dec_use(lock); |
82 | 86 | delete slots; |
83 | 87 | } |
… |
… |
|
97 | 101 | |
98 | 102 | //Allocate tls slot |
99 | 103 | tss_data_native_key = TlsAlloc(); |
100 | | if (tss_data_native_key == 0xFFFFFFFF) |
| 104 | if (tss_data_native_key == TLS_OUT_OF_INDEXES) |
101 | 105 | return; |
102 | 106 | #elif defined(BOOST_HAS_PTHREADS) |
103 | 107 | int res = pthread_key_create(&tss_data_native_key, &cleanup_slots); |