diff options
Diffstat (limited to 'libglusterfs/src/globals.c')
-rw-r--r-- | libglusterfs/src/globals.c | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/libglusterfs/src/globals.c b/libglusterfs/src/globals.c index d84e49dcc3d..05ff52c2c52 100644 --- a/libglusterfs/src/globals.c +++ b/libglusterfs/src/globals.c @@ -72,6 +72,12 @@ const char *gf_fop_list[GF_FOP_MAXVALUE] = { xlator_t global_xlator; static pthread_key_t this_xlator_key; +static pthread_key_t synctask_key; +static pthread_key_t uuid_buf_key; +static char global_uuid_buf[GF_UUID_BUF_SIZE]; +static pthread_key_t lkowner_buf_key; +static char global_lkowner_buf[GF_LKOWNER_BUF_SIZE]; + void glusterfs_this_destroy (void *ptr) @@ -161,33 +167,33 @@ glusterfs_this_set (xlator_t *this) /* SYNCTASK */ int -synctask_init (glusterfs_ctx_t *ctx) +synctask_init () { int ret = 0; - ret = pthread_key_create (&ctx->synctask_key, NULL); + ret = pthread_key_create (&synctask_key, NULL); return ret; } void * -synctask_get (glusterfs_ctx_t *ctx) +synctask_get () { void *synctask = NULL; - synctask = pthread_getspecific (ctx->synctask_key); + synctask = pthread_getspecific (synctask_key); return synctask; } int -synctask_set (glusterfs_ctx_t *ctx, void *synctask) +synctask_set (void *synctask) { int ret = 0; - pthread_setspecific (ctx->synctask_key, synctask); + pthread_setspecific (synctask_key, synctask); return ret; } @@ -201,27 +207,27 @@ glusterfs_uuid_buf_destroy (void *ptr) } int -glusterfs_uuid_buf_init (glusterfs_ctx_t *ctx) +glusterfs_uuid_buf_init () { int ret = 0; - ret = pthread_key_create (&ctx->uuid_buf_key, + ret = pthread_key_create (&uuid_buf_key, glusterfs_uuid_buf_destroy); return ret; } char * -glusterfs_uuid_buf_get (glusterfs_ctx_t *ctx) +glusterfs_uuid_buf_get () { char *buf; int ret = 0; - buf = pthread_getspecific (ctx->uuid_buf_key); + buf = pthread_getspecific (uuid_buf_key); if(!buf) { buf = MALLOC (GF_UUID_BUF_SIZE); - ret = pthread_setspecific (ctx->uuid_buf_key, (void *) buf); + ret = pthread_setspecific (uuid_buf_key, (void *) buf); if (ret) - buf = ctx->uuid_buf; + buf = global_uuid_buf; } return buf; } @@ -235,27 +241,27 @@ glusterfs_lkowner_buf_destroy (void *ptr) } int -glusterfs_lkowner_buf_init (glusterfs_ctx_t *ctx) +glusterfs_lkowner_buf_init () { int ret = 0; - ret = pthread_key_create (&ctx->lkowner_buf_key, + ret = pthread_key_create (&lkowner_buf_key, glusterfs_lkowner_buf_destroy); return ret; } char * -glusterfs_lkowner_buf_get (glusterfs_ctx_t *ctx) +glusterfs_lkowner_buf_get () { char *buf; int ret = 0; - buf = pthread_getspecific (ctx->lkowner_buf_key); + buf = pthread_getspecific (lkowner_buf_key); if(!buf) { buf = MALLOC (GF_LKOWNER_BUF_SIZE); - ret = pthread_setspecific (ctx->lkowner_buf_key, (void *) buf); + ret = pthread_setspecific (lkowner_buf_key, (void *) buf); if (ret) - buf = ctx->lkowner_buf; + buf = global_lkowner_buf; } return buf; } @@ -274,21 +280,21 @@ glusterfs_globals_init (glusterfs_ctx_t *ctx) goto out; } - ret = glusterfs_uuid_buf_init (ctx); + ret = glusterfs_uuid_buf_init (); if(ret) { gf_log ("", GF_LOG_CRITICAL, "ERROR: glusterfs uuid buffer init failed"); goto out; } - ret = glusterfs_lkowner_buf_init (ctx); + ret = glusterfs_lkowner_buf_init (); if(ret) { gf_log ("", GF_LOG_CRITICAL, "ERROR: glusterfs lkowner buffer init failed"); goto out; } - ret = synctask_init (ctx); + ret = synctask_init (); if (ret) { gf_log ("", GF_LOG_CRITICAL, "ERROR: glusterfs synctask init failed"); |