Ticket #906: tss.cpp.patch

File tss.cpp.patch, 1.4 KB (added by Anthony Williams, 15 years ago)

Patch for libs/thread/src/tss.cpp

  • tss.cpp

    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
     
    3131boost::mutex* tss_data_mutex = 0;
    3232tss_data_cleanup_handlers_type* tss_data_cleanup_handlers = 0;
    3333#if defined(BOOST_HAS_WINTHREADS)
    34     DWORD tss_data_native_key;
     34    DWORD tss_data_native_key=TLS_OUT_OF_INDEXES;
    3535#elif defined(BOOST_HAS_PTHREADS)
    3636    pthread_key_t tss_data_native_key;
    3737#elif defined(BOOST_HAS_MPTASKS)
     
    6060        tss_data_mutex = 0;
    6161#if defined(BOOST_HAS_WINTHREADS)
    6262        TlsFree(tss_data_native_key);
     63        tss_data_native_key=TLS_OUT_OF_INDEXES;
    6364#elif defined(BOOST_HAS_PTHREADS)
    6465        pthread_key_delete(tss_data_native_key);
    6566#elif defined(BOOST_HAS_MPTASKS)
     
    7879        (*(*tss_data_cleanup_handlers)[i])((*slots)[i]);
    7980        (*slots)[i] = 0;
    8081    }
     82#if defined(BOOST_HAS_WINTHREADS)
     83    TlsSetValue(tss_data_native_key,0);
     84#endif
    8185    tss_data_dec_use(lock);
    8286    delete slots;
    8387}
     
    97101
    98102    //Allocate tls slot
    99103    tss_data_native_key = TlsAlloc();
    100     if (tss_data_native_key == 0xFFFFFFFF)
     104    if (tss_data_native_key == TLS_OUT_OF_INDEXES)
    101105        return;
    102106#elif defined(BOOST_HAS_PTHREADS)
    103107    int res = pthread_key_create(&tss_data_native_key, &cleanup_slots);