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