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); |