aboutsummaryrefslogtreecommitdiffstats
path: root/src/mem_pool.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-06-17 18:26:45 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-06-17 18:26:45 +0400
commit453ecf68e3b51941944dbc3b1dece11342be3810 (patch)
treeee197ebfaa55f50914afee3ed03d70c31bd864b0 /src/mem_pool.c
parentdc48e79c1507e1235a271b4a3763e9701651d2ab (diff)
downloadrspamd-453ecf68e3b51941944dbc3b1dece11342be3810.tar.gz
rspamd-453ecf68e3b51941944dbc3b1dece11342be3810.zip
* Try to fix locking problem with double unlocking
Diffstat (limited to 'src/mem_pool.c')
-rw-r--r--src/mem_pool.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mem_pool.c b/src/mem_pool.c
index 4261e9f8d..e034ea652 100644
--- a/src/mem_pool.c
+++ b/src/mem_pool.c
@@ -508,7 +508,7 @@ void
memory_pool_unlock_mutex (memory_pool_mutex_t *mutex)
{
mutex->owner = 0;
- (void)g_atomic_int_dec_and_test (&mutex->lock);
+ (void)g_atomic_int_compare_and_exchange (&mutex->lock, 1, 0);
}
memory_pool_rwlock_t*