From 48f87e03e320fd5c4e3be2d462c240354471a24f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 23 May 2010 23:08:07 -0400 Subject: [PATCH 1/2] cpu.x86: fix callbacks receiving stack parameters on Win64 --- basis/cpu/x86/x86.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index 38c51591e9..58343a4eee 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -583,7 +583,7 @@ M:: x86 %store-stack-param ( src n rep -- ) #! input values to callbacks; the callback has its own #! stack frame set up, and we want to read the frame #! set up by the caller. - frame-reg swap 2 cells + [+] ; + [ frame-reg ] dip 2 cells + reserved-stack-space + [+] ; M:: x86 %load-stack-param ( dst n rep -- ) dst n next-stack@ rep %copy ; From 75de44c2a5a62dace0c4187b5b39211f82b5ba2f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 23 May 2010 23:16:41 -0400 Subject: [PATCH 2/2] alarms: new test case for interrupt race --- basis/alarms/alarms-tests.factor | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/basis/alarms/alarms-tests.factor b/basis/alarms/alarms-tests.factor index 715d51e4fa..ffba05bccc 100644 --- a/basis/alarms/alarms-tests.factor +++ b/basis/alarms/alarms-tests.factor @@ -37,3 +37,10 @@ IN: alarms.tests [ stop-alarm ] [ start-alarm ] bi 4 seconds sleep ] unit-test + +[ { 0 } ] [ + { 0 } + dup '[ 3 seconds sleep 1 _ set-first ] 1 seconds later + 2 seconds sleep stop-alarm + 1/2 seconds sleep +] unit-test