Lines 60-65
Link Here
|
60 |
import java.net.*; |
60 |
import java.net.*; |
61 |
import java.text.MessageFormat; |
61 |
import java.text.MessageFormat; |
62 |
import java.util.*; |
62 |
import java.util.*; |
|
|
63 |
import java.util.logging.Level; |
64 |
import java.util.logging.Logger; |
63 |
|
65 |
|
64 |
|
66 |
|
65 |
/** |
67 |
/** |
Lines 373-378
Link Here
|
373 |
private static volatile boolean detachCommandReceived; |
375 |
private static volatile boolean detachCommandReceived; |
374 |
private static ProfilerServer profilerServer; |
376 |
private static ProfilerServer profilerServer; |
375 |
private static ProfilingSessionStatus status; |
377 |
private static ProfilingSessionStatus status; |
|
|
378 |
private static boolean activated = false; |
376 |
private static volatile boolean startTargetApp; |
379 |
private static volatile boolean startTargetApp; |
377 |
private static volatile boolean targetAppMainThreadComplete; |
380 |
private static volatile boolean targetAppMainThreadComplete; |
378 |
private static volatile Exception startupException; |
381 |
private static volatile Exception startupException; |
Lines 916-921
Link Here
|
916 |
} |
919 |
} |
917 |
|
920 |
|
918 |
status.targetAppRunning = true; |
921 |
status.targetAppRunning = true; |
|
|
922 |
setActivatedFlag(); |
923 |
} |
924 |
|
925 |
private static synchronized void setActivatedFlag() { |
926 |
activated = true; |
927 |
ProfilerServer.class.notifyAll(); |
928 |
} |
929 |
|
930 |
/** |
931 |
* Waits till the server gets activated; eg. all internals are initialised |
932 |
*/ |
933 |
public static synchronized void waitActivated() { |
934 |
while (!activated && !Thread.currentThread().isInterrupted()) { |
935 |
try { |
936 |
ProfilerServer.class.wait(); |
937 |
} catch (InterruptedException e) { |
938 |
Thread.currentThread().interrupt(); |
939 |
} |
940 |
} |
919 |
} |
941 |
} |
920 |
|
942 |
|
921 |
private static void forcedShutdown() { |
943 |
private static void forcedShutdown() { |