summaryrefslogtreecommitdiff
path: root/libguile/weak-set.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@raeburn.org>2012-05-20 05:22:01 -0400
committerKen Raeburn <raeburn@raeburn.org>2012-05-20 23:12:00 -0400
commita722bcaa13acd3185e8e7b84f64cb614a46f3532 (patch)
tree891002633a942b17adb01827b2d9932c6ececbb1 /libguile/weak-set.c
parent730af462c387ce9cca30e84b8963edba10399d2e (diff)
downloadguile-a722bcaa13acd3185e8e7b84f64cb614a46f3532.tar.gz
Fix lock handling bug in commit aac980de43a0466b968a56607664f5ebbca6b751.
* libguile/weak-set.c (resize_set): When releasing a lock temporarily to do an allocation, re-lock it afterwards, instead of unlocking again. * libguile/weak-table.c (resize_table): Likewise.
Diffstat (limited to 'libguile/weak-set.c')
-rw-r--r--libguile/weak-set.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/weak-set.c b/libguile/weak-set.c
index bdabedf9d..33402b548 100644
--- a/libguile/weak-set.c
+++ b/libguile/weak-set.c
@@ -362,7 +362,7 @@ resize_set (scm_t_weak_set *set)
run anything, so drop our lock to avoid deadlocks. */
new_entries = scm_gc_malloc_pointerless (new_size * sizeof(scm_t_weak_entry),
"weak set");
- scm_i_pthread_mutex_unlock (&set->lock);
+ scm_i_pthread_mutex_lock (&set->lock);
}
while (!is_acceptable_size_index (set, new_size_index));