src/hotspot/os/windows/os_windows.inline.hpp
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 53886 e94ed0236046
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
    27 
    27 
    28 #include "runtime/os.hpp"
    28 #include "runtime/os.hpp"
    29 #include "runtime/thread.hpp"
    29 #include "runtime/thread.hpp"
    30 
    30 
    31 inline const char* os::dll_file_extension()            { return ".dll"; }
    31 inline const char* os::dll_file_extension()            { return ".dll"; }
    32 
       
    33 inline const int os::default_file_open_flags() { return O_BINARY | O_NOINHERIT;}
       
    34 
       
    35 // File names are case-insensitive on windows only
       
    36 inline int os::file_name_strncmp(const char* s, const char* t, size_t num) {
       
    37   return _strnicmp(s, t, num);
       
    38 }
       
    39 
    32 
    40 inline void  os::dll_unload(void *lib) {
    33 inline void  os::dll_unload(void *lib) {
    41   ::FreeLibrary((HMODULE)lib);
    34   ::FreeLibrary((HMODULE)lib);
    42 }
    35 }
    43 
    36 
    84 
    77 
    85 inline void os::exit(int num) {
    78 inline void os::exit(int num) {
    86   win32::exit_process_or_thread(win32::EPT_PROCESS, num);
    79   win32::exit_process_or_thread(win32::EPT_PROCESS, num);
    87 }
    80 }
    88 
    81 
    89 // Platform Monitor implementation
    82 // Platform Mutex/Monitor implementation
       
    83 
       
    84 inline os::PlatformMutex::PlatformMutex() {
       
    85   InitializeCriticalSection(&_mutex);
       
    86 }
       
    87 
       
    88 inline os::PlatformMutex::~PlatformMutex() {
       
    89   DeleteCriticalSection(&_mutex);
       
    90 }
    90 
    91 
    91 inline os::PlatformMonitor::PlatformMonitor() {
    92 inline os::PlatformMonitor::PlatformMonitor() {
    92   InitializeConditionVariable(&_cond);
    93   InitializeConditionVariable(&_cond);
    93   InitializeCriticalSection(&_mutex);
       
    94 }
    94 }
    95 
    95 
    96 inline os::PlatformMonitor::~PlatformMonitor() {
    96 inline os::PlatformMonitor::~PlatformMonitor() {
    97   DeleteCriticalSection(&_mutex);
    97   // There is no DeleteConditionVariable API
    98 }
    98 }
    99 
    99 
   100 inline void os::PlatformMonitor::lock() {
   100 inline void os::PlatformMutex::lock() {
   101   EnterCriticalSection(&_mutex);
   101   EnterCriticalSection(&_mutex);
   102 }
   102 }
   103 
   103 
   104 inline void os::PlatformMonitor::unlock() {
   104 inline void os::PlatformMutex::unlock() {
   105   LeaveCriticalSection(&_mutex);
   105   LeaveCriticalSection(&_mutex);
   106 }
   106 }
   107 
   107 
   108 inline bool os::PlatformMonitor::try_lock() {
   108 inline bool os::PlatformMutex::try_lock() {
   109   return TryEnterCriticalSection(&_mutex);
   109   return TryEnterCriticalSection(&_mutex);
   110 }
   110 }
   111 
   111 
   112 inline void os::PlatformMonitor::notify() {
   112 inline void os::PlatformMonitor::notify() {
   113   WakeConditionVariable(&_cond);
   113   WakeConditionVariable(&_cond);