Ruby
2.1.3p242(2014-09-19revision47630)
Main Page
Modules
Data Structures
Files
File List
Globals
thread_pthread.h
Go to the documentation of this file.
1
/**********************************************************************
2
3
thread_pthread.h -
4
5
$Author: ko1 $
6
7
Copyright (C) 2004-2007 Koichi Sasada
8
9
**********************************************************************/
10
11
#ifndef RUBY_THREAD_PTHREAD_H
12
#define RUBY_THREAD_PTHREAD_H
13
14
#include <pthread.h>
15
#ifdef HAVE_PTHREAD_NP_H
16
#include <pthread_np.h>
17
#endif
18
typedef
pthread_t
rb_nativethread_id_t
;
19
typedef
pthread_mutex_t
rb_nativethread_lock_t
;
20
21
typedef
struct
rb_thread_cond_struct
{
22
pthread_cond_t
cond
;
23
#ifdef HAVE_CLOCKID_T
24
clockid_t
clockid;
25
#endif
26
}
rb_nativethread_cond_t
;
27
28
typedef
struct
native_thread_data_struct
{
29
void
*
signal_thread_list
;
30
rb_nativethread_cond_t
sleep_cond
;
31
}
native_thread_data_t
;
32
33
#include <semaphore.h>
34
35
#undef except
36
#undef try
37
#undef leave
38
#undef finally
39
40
typedef
struct
rb_global_vm_lock_struct
{
41
/* fast path */
42
unsigned
long
acquired
;
43
pthread_mutex_t
lock
;
44
45
/* slow path */
46
volatile
unsigned
long
waiting
;
47
rb_nativethread_cond_t
cond
;
48
49
/* yield */
50
rb_nativethread_cond_t
switch_cond
;
51
rb_nativethread_cond_t
switch_wait_cond
;
52
int
need_yield
;
53
int
wait_yield
;
54
}
rb_global_vm_lock_t
;
55
56
#endif
/* RUBY_THREAD_PTHREAD_H */
57
Generated on Mon Sep 22 2014 11:05:39 for Ruby by
1.8.2