Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/vmThread.cpp @ 18041:52b4284cb496
Merge with jdk8u20-b26
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 16:02:50 +0200 |
parents | 4ca6dc0799b6 78bbf4d43a14 |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
17606:45d7b2c7029d | 18041:52b4284cb496 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 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 | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
44 HS_DTRACE_PROBE_DECL3(hotspot, vmops__request, char *, uintptr_t, int); | 44 HS_DTRACE_PROBE_DECL3(hotspot, vmops__request, char *, uintptr_t, int); |
45 HS_DTRACE_PROBE_DECL3(hotspot, vmops__begin, char *, uintptr_t, int); | 45 HS_DTRACE_PROBE_DECL3(hotspot, vmops__begin, char *, uintptr_t, int); |
46 HS_DTRACE_PROBE_DECL3(hotspot, vmops__end, char *, uintptr_t, int); | 46 HS_DTRACE_PROBE_DECL3(hotspot, vmops__end, char *, uintptr_t, int); |
47 #endif /* !USDT2 */ | 47 #endif /* !USDT2 */ |
48 | 48 |
49 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC | |
50 | |
49 // Dummy VM operation to act as first element in our circular double-linked list | 51 // Dummy VM operation to act as first element in our circular double-linked list |
50 class VM_Dummy: public VM_Operation { | 52 class VM_Dummy: public VM_Operation { |
51 VMOp_Type type() const { return VMOp_Dummy; } | 53 VMOp_Type type() const { return VMOp_Dummy; } |
52 void doit() {}; | 54 void doit() {}; |
53 }; | 55 }; |
313 // Mutex::lock_without_safepoint_check(). | 315 // Mutex::lock_without_safepoint_check(). |
314 MutexLockerEx ml(_terminate_lock, Mutex::_no_safepoint_check_flag); | 316 MutexLockerEx ml(_terminate_lock, Mutex::_no_safepoint_check_flag); |
315 _terminated = true; | 317 _terminated = true; |
316 _terminate_lock->notify(); | 318 _terminate_lock->notify(); |
317 } | 319 } |
320 | |
321 // Thread destructor usually does this. | |
322 ThreadLocalStorage::set_thread(NULL); | |
318 | 323 |
319 // Deletion must be done synchronously by the JNI DestroyJavaVM thread | 324 // Deletion must be done synchronously by the JNI DestroyJavaVM thread |
320 // so that the VMThread deletion completes before the main thread frees | 325 // so that the VMThread deletion completes before the main thread frees |
321 // up the CodeHeap. | 326 // up the CodeHeap. |
322 | 327 |