Repository: incubator-mnemonic Updated Branches: refs/heads/master c2ce66b56 -> 72f1ffad1
MNEMONIC-117ï¼ Remove mutex because nvml-pmem library is threadsafe Project: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/commit/72f1ffad Tree: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/tree/72f1ffad Diff: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/diff/72f1ffad Branch: refs/heads/master Commit: 72f1ffad1566e429c04950b1f9911d5fbe8fd761 Parents: c2ce66b Author: Wang, Gang(Gary) <gang1.w...@intel.com> Authored: Mon Sep 19 09:32:59 2016 -0700 Committer: Wang, Gang(Gary) <gang1.w...@intel.com> Committed: Mon Sep 19 10:34:51 2016 -0700 ---------------------------------------------------------------------- .../src/main/native/layout.h | 1 - ...ice_memoryservice_internal_PMemServiceImpl.c | 21 -------------------- 2 files changed, 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/72f1ffad/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/layout.h ---------------------------------------------------------------------- diff --git a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/layout.h b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/layout.h index c5ddf9e..823b021 100644 --- a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/layout.h +++ b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/layout.h @@ -43,7 +43,6 @@ typedef struct { uint64_t uuid_lo; void *base; size_t capacity; - pthread_mutex_t mutex; } PMPool; #define PMBHSZ (sizeof(PMBHeader)) http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/72f1ffad/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/org_apache_mnemonic_service_memoryservice_internal_PMemServiceImpl.c ---------------------------------------------------------------------- diff --git a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/org_apache_mnemonic_service_memoryservice_internal_PMemServiceImpl.c b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/org_apache_mnemonic_service_memoryservice_internal_PMemServiceImpl.c index 0975bbd..4bdfd55 100644 --- a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/org_apache_mnemonic_service_memoryservice_internal_PMemServiceImpl.c +++ b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/native/org_apache_mnemonic_service_memoryservice_internal_PMemServiceImpl.c @@ -35,12 +35,10 @@ jlong JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServic void *p; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); p = prealloc(pool, NULL, size, initzero ? 1 : 0); if (NULL != p) { ret = addr_to_java(p); } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); return ret; } @@ -53,13 +51,11 @@ jlong JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServic void *p; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); p = addr_from_java(e_addr); p = prealloc(pool, p, size, initzero ? 1 : 0); if (NULL != p) { ret = addr_to_java(p); } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); return ret; } @@ -74,11 +70,9 @@ void JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemService void* nativebuf; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); //fprintf(stderr, "nfree Get Called %ld, %X\n", id, address); nativebuf = addr_from_java(e_addr); pfree(pool, nativebuf); - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); } @@ -112,12 +106,10 @@ jobject JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServ void* nativebuf = NULL; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); nativebuf = prealloc(pool, NULL, size, 0); if (NULL != nativebuf) { ret = (*env)->NewDirectByteBuffer(env, nativebuf, size); } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); return ret; } @@ -169,7 +161,6 @@ jobject JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServ jobject ret = NULL; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); if (NULL != bytebuf) { void* nativebuf = (*env)->GetDirectBufferAddress(env, bytebuf); if (nativebuf != NULL) { @@ -179,7 +170,6 @@ jobject JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServ } } } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); return ret; } @@ -191,12 +181,10 @@ void JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemService PMPool *pool; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); if (NULL != bytebuf) { void* nativebuf = (*env)->GetDirectBufferAddress(env, bytebuf); pfree(pool, nativebuf); } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); } @@ -208,12 +196,10 @@ void JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemService TOID(struct pmem_root) root; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); root = POBJ_ROOT(pool->pop, struct pmem_root); if (key < MAX_HANDLER_STORE_LEN && key >= 0) { D_RW(root)->hdl_buf[key] = value; } - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); } @@ -224,10 +210,8 @@ jlong JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServic TOID(struct pmem_root) root; pthread_rwlock_rdlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); root = POBJ_ROOT(pool->pop, struct pmem_root); jlong ret = (key < MAX_HANDLER_STORE_LEN && key >= 0) ? D_RO(root)->hdl_buf[key] : 0L; - pthread_mutex_unlock(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); return ret; } @@ -280,7 +264,6 @@ jlong JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemServic if (NULL != g_pmpool_arr) { pool = g_pmpool_arr + g_pmpool_count; pool->pop = pop; - pthread_mutex_init(&pool->mutex, NULL); root = POBJ_ROOT(pool->pop, struct pmem_root); pool->uuid_lo = root.oid.pool_uuid_lo; pool->base = (void*)pop; @@ -302,14 +285,11 @@ void JNICALL Java_org_apache_mnemonic_service_memoryservice_internal_PMemService PMPool *pool; pthread_rwlock_wrlock(&g_pmp_rwlock); pool = g_pmpool_arr + id; - pthread_mutex_lock(&pool->mutex); pmemobj_close(pool->pop); pool->pop = NULL; pool->base = NULL; pool->uuid_lo = 0; pool->capacity = 0; - pthread_mutex_unlock(&pool->mutex); - pthread_mutex_destroy(&pool->mutex); pthread_rwlock_unlock(&g_pmp_rwlock); } @@ -325,7 +305,6 @@ __attribute__((destructor)) void fini(void) { pool->base = NULL; pool->capacity = 0; pool->uuid_lo = 0; - pthread_mutex_destroy(&pool->mutex); } } free(g_pmpool_arr);