#define STORE_ORDER_BARRIER() __asm__ __volatile__ ("" : : : "memory");
#define MEMORY_BARRIER_AFTER_ATOMIC() /* nothing */
#define MEMORY_BARRIER() __asm__ __volatile__ ( \
- "mfence" : : : "memory" );
+ "lock; add $0, 0(%%esp)" : : : "memory" );
#endif
{
classinfo *subs;
- /*printf("computing class %s\n", c->name->text);*/
c->vftbl->baseval = ++classvalue;
subs = c->sub;
-// 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;
-// 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.