From 0ce91a565d63d88b8a11abf66e55f8b2f2a7f868 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 15 Apr 2012 20:39:09 +0200 Subject: [PATCH] The mailbox did not set its mask properly --- src/c/threads/mailbox.d | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/c/threads/mailbox.d b/src/c/threads/mailbox.d index 9ed0c52ce..2d4efc9fb 100644 --- a/src/c/threads/mailbox.d +++ b/src/c/threads/mailbox.d @@ -34,8 +34,9 @@ ecl_make_mailbox(cl_object name, cl_fixnum count) cl_fixnum mask; for (mask = 1; mask < count; mask <<= 1) {} if (mask == 1) - mask = 63; - count = mask + 1; + mask = 63; + count = mask; + mask = count - 1; output->mailbox.name = name; output->mailbox.data = si_make_vector(Ct, /* element type */ MAKE_FIXNUM(count), /* size */ @@ -48,7 +49,7 @@ ecl_make_mailbox(cl_object name, cl_fixnum count) output->mailbox.writer_semaphore = ecl_make_semaphore(name, count); output->mailbox.read_pointer = 0; - output->mailbox.write_pointer = 1; + output->mailbox.write_pointer = 0; output->mailbox.mask = mask; return output; }