diff options
author | Ken Raeburn <raeburn@raeburn.org> | 2012-05-20 05:22:01 -0400 |
---|---|---|
committer | Ken Raeburn <raeburn@raeburn.org> | 2012-05-20 23:12:00 -0400 |
commit | a722bcaa13acd3185e8e7b84f64cb614a46f3532 (patch) | |
tree | 891002633a942b17adb01827b2d9932c6ececbb1 /libguile/weak-set.c | |
parent | 730af462c387ce9cca30e84b8963edba10399d2e (diff) | |
download | guile-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.c | 2 |
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)); |