summaryrefslogtreecommitdiff
path: root/src/lazyfree.c
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2017-05-04 10:35:32 +0200
committerantirez <antirez@gmail.com>2017-05-04 10:35:40 +0200
commit52bc74f22150183111bc0da9cd2c29de440a50b5 (patch)
tree224283572ad115aafb8530b01632aca184c66891 /src/lazyfree.c
parent7d9326b1f3a6fd8e218da9a4ca357d9af2e9b644 (diff)
downloadredis-52bc74f22150183111bc0da9cd2c29de440a50b5.tar.gz
Lazyfree: fix lazyfreeGetPendingObjectsCount() race reading counter.
Diffstat (limited to 'src/lazyfree.c')
-rw-r--r--src/lazyfree.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lazyfree.c b/src/lazyfree.c
index 8d56e1031..64ed68466 100644
--- a/src/lazyfree.c
+++ b/src/lazyfree.c
@@ -8,7 +8,9 @@ pthread_mutex_t lazyfree_objects_mutex = PTHREAD_MUTEX_INITIALIZER;
/* Return the number of currently pending objects to free. */
size_t lazyfreeGetPendingObjectsCount(void) {
- return lazyfree_objects;
+ size_t aux;
+ atomicGet(lazyfree_objects,aux,lazyfree_objects_mutex);
+ return aux;
}
/* Return the amount of work needed in order to free an object.