Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001.java
40948 views
1
/*
2
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
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
package nsk.jvmti.GetCurrentThreadCpuTimerInfo;
25
26
import java.io.PrintStream;
27
28
import nsk.share.*;
29
import nsk.share.jvmti.*;
30
31
/** Debuggee class for this test. */
32
public class curthrtimerinfo001 extends DebugeeClass {
33
34
/** Load native library if required. */
35
static {
36
loadLibrary("curthrtimerinfo001");
37
}
38
39
/** Run test from command line. */
40
public static void main(String argv[]) {
41
argv = nsk.share.jvmti.JVMTITest.commonInit(argv);
42
43
// JCK-compatible exit
44
System.exit(run(argv, System.out) + Consts.JCK_STATUS_BASE);
45
}
46
47
/** Run test from JCK-compatible environment. */
48
public static int run(String argv[], PrintStream out) {
49
return new curthrtimerinfo001().runIt(argv, out);
50
}
51
52
/* =================================================================== */
53
54
// scaffold objects
55
ArgumentHandler argHandler = null;
56
Log log = null;
57
long timeout = 0;
58
int status = Consts.TEST_PASSED;
59
60
/** Run debuggee. */
61
public int runIt(String argv[], PrintStream out) {
62
argHandler = new ArgumentHandler(argv);
63
log = new Log(out, argHandler);
64
timeout = argHandler.getWaitTime() * 60 * 1000; // milliseconds
65
66
curthrtimerinfo001Thread thread = new curthrtimerinfo001Thread("TestedThread");
67
68
// sync before thread started
69
log.display("Sync: tested thread created");
70
status = checkStatus(status);
71
72
// start and finish tested thread
73
try {
74
thread.start();
75
thread.join();
76
} catch (InterruptedException e) {
77
throw new Failure("Main thread interrupted while waiting for tested thread:\n\t"
78
+ e);
79
}
80
81
// sync after thread finished
82
log.display("Sync: tested thread started and finished");
83
status = checkStatus(status);
84
85
return status;
86
}
87
}
88
89
/* =================================================================== */
90
91
/** Class for tested thread. */
92
class curthrtimerinfo001Thread extends Thread {
93
/** Make thread with specific name. */
94
public curthrtimerinfo001Thread(String name) {
95
super(name);
96
}
97
98
/** Run some code. */
99
public void run() {
100
// do something
101
int n = 1000;
102
int s = 0;
103
for (int i = 0; i < n; i++) {
104
if (i % 2 == 0) {
105
s += i * 10;
106
} else {
107
s -= i * 10;
108
}
109
}
110
}
111
}
112
113