version 1.3, 2002/07/24 08:00:21 |
version 1.4, 2003/06/24 05:11:42 |
Line 85 static __inline__ void * PREFIXED(getspecific) (tsd * |
|
Line 85 static __inline__ void * PREFIXED(getspecific) (tsd * |
|
unsigned hash_val = CACHE_HASH(qtid); |
unsigned hash_val = CACHE_HASH(qtid); |
tse * volatile * entry_ptr = key -> cache + hash_val; |
tse * volatile * entry_ptr = key -> cache + hash_val; |
tse * entry = *entry_ptr; /* Must be loaded only once. */ |
tse * entry = *entry_ptr; /* Must be loaded only once. */ |
if (entry -> qtid == qtid) { |
if (EXPECT(entry -> qtid == qtid, 1)) { |
GC_ASSERT(entry -> thread == pthread_self()); |
GC_ASSERT(entry -> thread == pthread_self()); |
return entry -> value; |
return entry -> value; |
} |
} |