From 567e7bba26bb8fe485be6c2ddfaaf8ab77eb6141 Mon Sep 17 00:00:00 2001 From: looper3339 <736321739@qq.com> Date: 星期一, 09 八月 2021 21:46:05 +0800 Subject: [PATCH] fjt fix req-rep error --- src/shm/hashtable.cpp | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/shm/hashtable.cpp b/src/shm/hashtable.cpp index e435172..c4a81fc 100755 --- a/src/shm/hashtable.cpp +++ b/src/shm/hashtable.cpp @@ -138,13 +138,32 @@ } void *hashtable_get(hashtable_t *hashtable, int key) { + int rv; + + if((rv = svsem_wait(hashtable->mutex)) != 0) { + LoggerFactory::getLogger()->error(errno, "hashtable_get\n"); + } void * res = _hashtable_get(hashtable, key); + + if((rv = svsem_post(hashtable->mutex)) != 0) { + LoggerFactory::getLogger()->error(errno, "hashtable_get\n"); + } return res; } void hashtable_put(hashtable_t *hashtable, int key, void *value) { + int rv; + + if((rv = svsem_wait(hashtable->mutex)) != 0) { + LoggerFactory::getLogger()->error(errno, "hashtable_put\n"); + } _hashtable_put(hashtable, key, value); hashtable->queueCount++; + + if((rv = svsem_post(hashtable->mutex)) != 0) { + LoggerFactory::getLogger()->error(errno, "hashtable_put\n"); + } + } bool hashtable_check_put(hashtable_t *hashtable, int key, void *value, bool overwrite) { @@ -249,17 +268,6 @@ return keyset; } - - -int hashtable_lock(hashtable_t *hashtable) { - return svsem_wait(hashtable->mutex); -} - -int hashtable_unlock(hashtable_t *hashtable) { - return svsem_post(hashtable->mutex); -} - - void hashtable_removeall(hashtable_t *hashtable) { tailq_entry_t *item; @@ -294,7 +302,6 @@ { return key % MAPSIZE; - /*printf("hashfun = %ld\n", code);*/ } /** @@ -317,4 +324,4 @@ } printf("\n"); } -} \ No newline at end of file +} -- Gitblit v1.8.0