From 7a936e84c0e79b498c2610580ad4db55c9df2dc9 Mon Sep 17 00:00:00 2001 From: Stefan Ring Date: Wed, 30 Apr 2008 20:30:36 +0200 Subject: [PATCH] * tests/threads/threadInterrupt.java: Added brief comment explaining the purpose of this test. * tests/threads/waitAndInterrupt.java: Likewise. --- src/vm/jit/i386/machine-instr.h | 2 +- src/vmcore/linker.c | 1 + tests/threads/threadInterrupt.java | 7 +++++++ tests/threads/waitAndInterrupt.java | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/vm/jit/i386/machine-instr.h b/src/vm/jit/i386/machine-instr.h index 1499e961f..eb3706400 100644 --- a/src/vm/jit/i386/machine-instr.h +++ b/src/vm/jit/i386/machine-instr.h @@ -16,6 +16,6 @@ compare_and_swap (volatile long *p, long oldval, long newval) #define STORE_ORDER_BARRIER() __asm__ __volatile__ ("" : : : "memory"); #define MEMORY_BARRIER_AFTER_ATOMIC() /* nothing */ #define MEMORY_BARRIER() __asm__ __volatile__ ( \ - "lock; add $0, 0(%%esp)" : : : "memory" ); + "mfence" : : : "memory" ); #endif diff --git a/src/vmcore/linker.c b/src/vmcore/linker.c index e8b985aad..3468558c9 100644 --- a/src/vmcore/linker.c +++ b/src/vmcore/linker.c @@ -1214,6 +1214,7 @@ static void linker_compute_class_values(classinfo *c) { classinfo *subs; + /*printf("computing class %s\n", c->name->text);*/ c->vftbl->baseval = ++classvalue; subs = c->sub; diff --git a/tests/threads/threadInterrupt.java b/tests/threads/threadInterrupt.java index ef4108379..cbff11317 100644 --- a/tests/threads/threadInterrupt.java +++ b/tests/threads/threadInterrupt.java @@ -1,3 +1,10 @@ +// This test has been added because of a bug in CACAO that allowed threads +// blocked inside monitorenter to be interrupted. In the presence of the bug, +// the program would not exit. +// +// The bug has been fixed as part of the sable lock implementation. +// hg revision 2988182011bb ff (Wed Feb 06 18:46:34 2008 +0100) + public class threadInterrupt { public static class firstthread implements Runnable { private threadInterrupt s; diff --git a/tests/threads/waitAndInterrupt.java b/tests/threads/waitAndInterrupt.java index 2f68b7558..6a1ac0bde 100644 --- a/tests/threads/waitAndInterrupt.java +++ b/tests/threads/waitAndInterrupt.java @@ -1,3 +1,6 @@ +// This should run forever. If it stops, that's a good indication for a bug in +// the VM. +// // This test grew a bit more elaborate than anticipated... // It verifies that the JVM handles properly the case of a thread being // interrupted and notified at the same time. -- 2.25.1