Mercurial > hg > graal-jvmci-8
comparison src/os/windows/vm/os_windows.hpp @ 11173:6b0fd0964b87
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 31 Jul 2013 11:00:54 +0200 |
parents | 5e3b6f79d280 |
children | b0133e4187d3 6c9332549827 |
comparison
equal
deleted
inserted
replaced
10912:4ea54634f03e | 11173:6b0fd0964b87 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2013, 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. |
92 #ifndef _WIN64 | 92 #ifndef _WIN64 |
93 // A wrapper to install a structured exception handler for fast JNI accesors. | 93 // A wrapper to install a structured exception handler for fast JNI accesors. |
94 static address fast_jni_accessor_wrapper(BasicType); | 94 static address fast_jni_accessor_wrapper(BasicType); |
95 #endif | 95 #endif |
96 | 96 |
97 #ifndef PRODUCT | |
98 static void call_test_func_with_wrapper(void (*funcPtr)(void)); | |
99 #endif | |
100 | |
97 // filter function to ignore faults on serializations page | 101 // filter function to ignore faults on serializations page |
98 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e); | 102 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e); |
103 }; | |
104 | |
105 /* | |
106 * Crash protection for the watcher thread. Wrap the callback | |
107 * with a __try { call() } | |
108 * To be able to use this - don't take locks, don't rely on destructors, | |
109 * don't make OS library calls, don't allocate memory, don't print, | |
110 * don't call code that could leave the heap / memory in an inconsistent state, | |
111 * or anything else where we are not in control if we suddenly jump out. | |
112 */ | |
113 class WatcherThreadCrashProtection : public StackObj { | |
114 public: | |
115 WatcherThreadCrashProtection(); | |
116 bool call(os::CrashProtectionCallback& cb); | |
99 }; | 117 }; |
100 | 118 |
101 class PlatformEvent : public CHeapObj<mtInternal> { | 119 class PlatformEvent : public CHeapObj<mtInternal> { |
102 private: | 120 private: |
103 double CachePad [4] ; // increase odds that _Event is sole occupant of cache line | 121 double CachePad [4] ; // increase odds that _Event is sole occupant of cache line |