equal
deleted
inserted
replaced
100 |
100 |
101 // filter function to ignore faults on serializations page |
101 // filter function to ignore faults on serializations page |
102 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e); |
102 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e); |
103 }; |
103 }; |
104 |
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); |
|
117 }; |
|
118 |
105 class PlatformEvent : public CHeapObj<mtInternal> { |
119 class PlatformEvent : public CHeapObj<mtInternal> { |
106 private: |
120 private: |
107 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 |
108 volatile int _Event ; |
122 volatile int _Event ; |
109 HANDLE _ParkHandle ; |
123 HANDLE _ParkHandle ; |