aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--gc.c2
2 files changed, 5 insertions, 1 deletions
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 <ko1@atdot.net>
+
+ * gc.c (atomic_sub_nounderflow): not 0 but val itself.
+
Fri Dec 6 18:37:11 2013 Koichi Sasada <ko1@atdot.net>
* 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;
}
}