7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 /*
24 */
25 package org.graalvm.compiler.jtt.threads;
26
27 import org.junit.Test;
28
29 import org.graalvm.compiler.jtt.JTTTest;
30
31 public class Object_wait03 extends JTTTest {
32
33 private static class TestClass implements Runnable {
34 @Override
35 public void run() {
36 try {
37 Thread.sleep(sleep);
38 } catch (InterruptedException ex) {
39
40 }
41 synchronized (object) {
42 done = true;
43 object.notifyAll();
44 }
45 }
46 }
47
48 static volatile boolean done;
49 static final Object object = new Object();
52 public static boolean test(int i) throws InterruptedException {
53 done = false;
54 sleep = i * 200;
55 synchronized (object) {
56 new Thread(new TestClass()).start();
57 dowait();
58 }
59 return done;
60 }
61
62 private static void dowait() throws InterruptedException {
63 synchronized (object) {
64 while (!done) {
65 object.wait(200);
66 }
67 }
68 }
69
70 @Test(timeout = 20000)
71 public void run0() throws Throwable {
72 runTest("test", 0);
73 }
74
75 @Test(timeout = 20000)
76 public void run1() throws Throwable {
77 runTest("test", 1);
78 }
79
80 @Test(timeout = 20000)
81 public void run2() throws Throwable {
82 runTest("test", 2);
83 }
84
85 }
|
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 /*
24 */
25 package org.graalvm.compiler.jtt.threads;
26
27 import org.graalvm.compiler.jtt.JTTTest;
28 import org.junit.Test;
29
30 public class Object_wait03 extends JTTTest {
31
32 private static class TestClass implements Runnable {
33 @Override
34 public void run() {
35 try {
36 Thread.sleep(sleep);
37 } catch (InterruptedException ex) {
38
39 }
40 synchronized (object) {
41 done = true;
42 object.notifyAll();
43 }
44 }
45 }
46
47 static volatile boolean done;
48 static final Object object = new Object();
51 public static boolean test(int i) throws InterruptedException {
52 done = false;
53 sleep = i * 200;
54 synchronized (object) {
55 new Thread(new TestClass()).start();
56 dowait();
57 }
58 return done;
59 }
60
61 private static void dowait() throws InterruptedException {
62 synchronized (object) {
63 while (!done) {
64 object.wait(200);
65 }
66 }
67 }
68
69 @Test(timeout = 20000)
70 public void run0() throws Throwable {
71 initializeForTimeout();
72 runTest("test", 0);
73 }
74
75 @Test(timeout = 20000)
76 public void run1() throws Throwable {
77 initializeForTimeout();
78 runTest("test", 1);
79 }
80
81 @Test(timeout = 20000)
82 public void run2() throws Throwable {
83 initializeForTimeout();
84 runTest("test", 2);
85 }
86
87 }
|