diff --git a/ChangeLog b/ChangeLog index 1c0a84c9cf..98be0f3217 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 6 19:08:48 2013 Koichi Sasada + + * gc.c (atomic_sub_nounderflow): not 0 but val itself. + Fri Dec 6 18:37:11 2013 Koichi Sasada * gc.c (rb_objspace_alloc, Init_heap): initialize diff --git a/gc.c b/gc.c index ac17d03f81..f6940b0419 100644 --- a/gc.c +++ b/gc.c @@ -5816,7 +5816,7 @@ atomic_sub_nounderflow(size_t *var, size_t sub) while (1) { size_t val = *var; - if (val < sub) sub = 0; + if (val < sub) sub = val; if (ATOMIC_SIZE_CAS(*var, val, val-sub) == val) break; } }