comparison src/share/vm/runtime/os.hpp @ 11151:5e3b6f79d280

8020701: Avoid crashes in WatcherThread Reviewed-by: acorn, dcubed, dsimms
author rbackman
date Wed, 17 Jul 2013 13:48:15 +0200
parents 59b052799158
children af21010d1062
comparison
equal deleted inserted replaced
11150:c29568b733d2 11151:5e3b6f79d280
30 #include "runtime/extendedPC.hpp" 30 #include "runtime/extendedPC.hpp"
31 #include "runtime/handles.hpp" 31 #include "runtime/handles.hpp"
32 #include "utilities/top.hpp" 32 #include "utilities/top.hpp"
33 #ifdef TARGET_OS_FAMILY_linux 33 #ifdef TARGET_OS_FAMILY_linux
34 # include "jvm_linux.h" 34 # include "jvm_linux.h"
35 # include <setjmp.h>
35 #endif 36 #endif
36 #ifdef TARGET_OS_FAMILY_solaris 37 #ifdef TARGET_OS_FAMILY_solaris
37 # include "jvm_solaris.h" 38 # include "jvm_solaris.h"
39 # include <setjmp.h>
38 #endif 40 #endif
39 #ifdef TARGET_OS_FAMILY_windows 41 #ifdef TARGET_OS_FAMILY_windows
40 # include "jvm_windows.h" 42 # include "jvm_windows.h"
41 #endif 43 #endif
42 #ifdef TARGET_OS_FAMILY_bsd 44 #ifdef TARGET_OS_FAMILY_bsd
43 # include "jvm_bsd.h" 45 # include "jvm_bsd.h"
46 # include <setjmp.h>
44 #endif 47 #endif
45 48
46 // os defines the interface to operating system; this includes traditional 49 // os defines the interface to operating system; this includes traditional
47 // OS services (time, I/O) as well as other functionality with system- 50 // OS services (time, I/O) as well as other functionality with system-
48 // dependent code. 51 // dependent code.
728 731
729 // Extensions 732 // Extensions
730 #include "runtime/os_ext.hpp" 733 #include "runtime/os_ext.hpp"
731 734
732 public: 735 public:
736 class CrashProtectionCallback : public StackObj {
737 public:
738 virtual void call() = 0;
739 };
733 740
734 // Platform dependent stuff 741 // Platform dependent stuff
735 #ifdef TARGET_OS_FAMILY_linux 742 #ifdef TARGET_OS_FAMILY_linux
736 # include "os_linux.hpp" 743 # include "os_linux.hpp"
737 # include "os_posix.hpp" 744 # include "os_posix.hpp"
906 int home_len, 913 int home_len,
907 char fileSep, 914 char fileSep,
908 char pathSep); 915 char pathSep);
909 static bool set_boot_path(char fileSep, char pathSep); 916 static bool set_boot_path(char fileSep, char pathSep);
910 static char** split_path(const char* path, int* n); 917 static char** split_path(const char* path, int* n);
918
911 }; 919 };
912 920
913 // Note that "PAUSE" is almost always used with synchronization 921 // Note that "PAUSE" is almost always used with synchronization
914 // so arguably we should provide Atomic::SpinPause() instead 922 // so arguably we should provide Atomic::SpinPause() instead
915 // of the global SpinPause() with C linkage. 923 // of the global SpinPause() with C linkage.