2011-12-22 33 views
1

我没有发现任何有关此错误的信息......任何想法来自哪里?警告:检索到TSD插槽10,但线程数据已被拆除

Warning: TSD slot 10 retrieved but the thread data has already been torn down. 
Warning: TSD slot 10 set but the thread data has already been torn down. 

不知道如何调试这个错误。不完全知道警告发生在哪里。

我发现这个在CFPlatform.c

// For the use of CF and Foundation only 
CF_EXPORT void *_CFGetTSD(uint32_t slot) { 
    if (slot > CF_TSD_MAX_SLOTS) { 
     _CFLogSimple(kCFLogLevelError, "Error: TSD slot %d out of range (get)", slot); 
     HALT; 
    } 
    __CFTSDTable *table = __CFTSDGetTable(); 
    if (!table) { 
     // Someone is getting TSD during thread destruction. The table is gone, so we can't get any data anymore. 
     _CFLogSimple(kCFLogLevelWarning, "Warning: TSD slot %d retrieved but the thread data has already been torn down.", slot); 
     return NULL; 
    } 
    uintptr_t *slots = (uintptr_t *)(table->data); 
    return (void *)slots[slot]; 
} 

回答