diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2012-04-21 23:44:19 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-04-21 23:44:19 +0400 |
commit | b93465e3e59a7a5caebd11292cce08ce34f53877 (patch) | |
tree | a17b4cd7fc6e7c1d0498017a9b73e2c3ec3c8901 /specific.c | |
parent | 38e65eaaefb295aab3a5fc7c10fd6f89330cf1a4 (diff) | |
download | bdwgc-b93465e3e59a7a5caebd11292cce08ce34f53877.tar.gz |
Code refactoring of specific.c and specific.h;
cast pointers to word instead of unsigned long
* include/private/specific.h (CACHE_HASH, HASH): Add parentheses
around the argument.
* include/private/specific.h (CACHE_HASH): Remove unnecessary cast to
long.
* include/private/specific.h (HASH): Rename "n" argument to "p";
cast "p" to word instead of long; cast result to unsigned.
* include/private/specific.h (quick_thread_id, INVALID_QTID): Cast to
word instead of unsigned long.
* specific.c (GC_key_create_inner): Cast invalid_tse.next (pointer) to
word instead of unsigned long.
* include/private/specific.h (GC_slow_getspecific, GC_getspecific):
Change type of "qtid" from unsigned long to word.
* specific.c (GC_slow_getspecific): Likewise.
* include/private/specific.h (GC_getspecific): Remove "hash_val"
local variable.
* specific.c: Do not include gc_priv.h as included from
thread_local_alloc.h; do not include atomic_ops.h as included from
specific.h file.
Diffstat (limited to 'specific.c')
-rw-r--r-- | specific.c | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -11,7 +11,6 @@ * modified is included with the above copyright notice. */ -#include "private/gc_priv.h" /* For configuration, pthreads.h. */ #include "private/thread_local_alloc.h" /* To determine type of tsd impl. */ /* Includes private/specific.h */ @@ -19,8 +18,6 @@ #if defined(USE_CUSTOM_SPECIFIC) -#include "atomic_ops.h" - static const tse invalid_tse = {INVALID_QTID, 0, 0, INVALID_THREADID}; /* A thread-specific data entry which will never */ /* appear valid to a reader. Used to fill in empty */ @@ -32,7 +29,7 @@ GC_INNER int GC_key_create_inner(tsd ** key_ptr) tsd * result = (tsd *)MALLOC_CLEAR(sizeof(tsd)); /* A quick alignment check, since we need atomic stores */ - GC_ASSERT((unsigned long)(&invalid_tse.next) % sizeof(tse *) == 0); + GC_ASSERT((word)(&invalid_tse.next) % sizeof(tse *) == 0); if (0 == result) return ENOMEM; pthread_mutex_init(&(result -> lock), NULL); for (i = 0; i < TS_CACHE_SIZE; ++i) { @@ -109,7 +106,7 @@ GC_INNER void GC_remove_specific(tsd * key) } /* Note that even the slow path doesn't lock. */ -GC_INNER void * GC_slow_getspecific(tsd * key, unsigned long qtid, +GC_INNER void * GC_slow_getspecific(tsd * key, word qtid, tse * volatile * cache_ptr) { pthread_t self = pthread_self(); |