1/**********************************************************************
2
3  thread_win32.h -
4
5  $Author: nobu $
6
7  Copyright (C) 2004-2007 Koichi Sasada
8
9**********************************************************************/
10
11/* interface */
12#ifndef RUBY_THREAD_WIN32_H
13#define RUBY_THREAD_WIN32_H
14
15#include <windows.h>
16
17# ifdef __CYGWIN__
18# undef _WIN32
19# endif
20
21WINBASEAPI BOOL WINAPI
22TryEnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection);
23
24typedef HANDLE rb_thread_id_t;
25
26typedef union rb_thread_lock_union {
27    HANDLE mutex;
28    CRITICAL_SECTION crit;
29} rb_thread_lock_t;
30
31typedef struct rb_thread_cond_struct {
32    struct cond_event_entry *next;
33    struct cond_event_entry *prev;
34} rb_thread_cond_t;
35
36typedef struct native_thread_data_struct {
37    HANDLE interrupt_event;
38} native_thread_data_t;
39
40typedef struct rb_global_vm_lock_struct {
41    HANDLE lock;
42} rb_global_vm_lock_t;
43
44#endif /* RUBY_THREAD_WIN32_H */
45
46