< prev index next > test/jdk/java/lang/Thread/virtual/HoldsLock.java
Print this page
/**
* @test
* @summary Test Thread.holdsLock when lock held by carrier thread
* @requires vm.continuations
* @modules java.base/java.lang:+open
- * @enablePreview
* @run junit HoldsLock
*/
/**
* @test
* @summary Test Thread.holdsLock when lock held by carrier thread
* @requires vm.continuations & vm.debug
* @modules java.base/java.lang:+open
- * @enablePreview
* @run junit/othervm -XX:+UseHeavyMonitors HoldsLock
*/
import java.lang.management.LockInfo;
import java.lang.management.ManagementFactory;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Disabled;
import static org.junit.jupiter.api.Assertions.*;
+ import static org.junit.jupiter.api.Assumptions.*;
class HoldsLock {
static final Object LOCK1 = new Object();
static final Object LOCK2 = new Object();
stop(carrier);
}
@Test
void testThreadInfo() throws Exception {
+ assumeFalse(Thread.currentThread().isVirtual(), "Main thread must be platform thread");
+
var q = new ArrayBlockingQueue<Runnable>(5);
Thread carrier = spawnCarrier(q);
Thread vthread = spawnVirtual(executor(q), () -> {
synchronized (LOCK1) {
< prev index next >