mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* thread_(pthread|win32).h: rename rb_thread_cond_t to
rb_nativethread_cond_t. * thread.c, thread_pthread.c, thread_win32.c, vm_core.h: catch up renaming. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									b2bcef7294
								
							
						
					
					
						commit
						4d3feac974
					
				
					 7 changed files with 40 additions and 32 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,11 @@
 | 
			
		|||
Tue Jul 23 19:48:38 2013  Koichi Sasada  <ko1@atdot.net>
 | 
			
		||||
 | 
			
		||||
	* thread_(pthread|win32).h: rename rb_thread_cond_t to
 | 
			
		||||
	  rb_nativethread_cond_t.
 | 
			
		||||
 | 
			
		||||
	* thread.c, thread_pthread.c, thread_win32.c, vm_core.h: catch up
 | 
			
		||||
	  renaming.
 | 
			
		||||
 | 
			
		||||
Tue Jul 23 19:44:32 2013  Koichi Sasada  <ko1@atdot.net>
 | 
			
		||||
 | 
			
		||||
	* thread_native.h: add rb_nativethread_self() which returns
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								thread.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								thread.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -388,7 +388,7 @@ terminate_i(st_data_t key, st_data_t val, rb_thread_t *main_thread)
 | 
			
		|||
typedef struct rb_mutex_struct
 | 
			
		||||
{
 | 
			
		||||
    rb_nativethread_lock_t lock;
 | 
			
		||||
    rb_thread_cond_t cond;
 | 
			
		||||
    rb_nativethread_cond_t cond;
 | 
			
		||||
    struct rb_thread_struct volatile *th;
 | 
			
		||||
    int cond_waiting;
 | 
			
		||||
    struct rb_mutex_struct *next_mutex;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,11 +39,11 @@ static void native_mutex_unlock(pthread_mutex_t *lock);
 | 
			
		|||
static int native_mutex_trylock(pthread_mutex_t *lock);
 | 
			
		||||
static void native_mutex_initialize(pthread_mutex_t *lock);
 | 
			
		||||
static void native_mutex_destroy(pthread_mutex_t *lock);
 | 
			
		||||
static void native_cond_signal(rb_thread_cond_t *cond);
 | 
			
		||||
static void native_cond_broadcast(rb_thread_cond_t *cond);
 | 
			
		||||
static void native_cond_wait(rb_thread_cond_t *cond, pthread_mutex_t *mutex);
 | 
			
		||||
static void native_cond_initialize(rb_thread_cond_t *cond, int flags);
 | 
			
		||||
static void native_cond_destroy(rb_thread_cond_t *cond);
 | 
			
		||||
static void native_cond_signal(rb_nativethread_cond_t *cond);
 | 
			
		||||
static void native_cond_broadcast(rb_nativethread_cond_t *cond);
 | 
			
		||||
static void native_cond_wait(rb_nativethread_cond_t *cond, pthread_mutex_t *mutex);
 | 
			
		||||
static void native_cond_initialize(rb_nativethread_cond_t *cond, int flags);
 | 
			
		||||
static void native_cond_destroy(rb_nativethread_cond_t *cond);
 | 
			
		||||
static void rb_thread_wakeup_timer_thread_low(void);
 | 
			
		||||
static pthread_t timer_thread_id;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -253,7 +253,7 @@ native_mutex_destroy(pthread_mutex_t *lock)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_initialize(rb_thread_cond_t *cond, int flags)
 | 
			
		||||
native_cond_initialize(rb_nativethread_cond_t *cond, int flags)
 | 
			
		||||
{
 | 
			
		||||
#ifdef HAVE_PTHREAD_COND_INIT
 | 
			
		||||
    int r;
 | 
			
		||||
| 
						 | 
				
			
			@ -284,7 +284,7 @@ native_cond_initialize(rb_thread_cond_t *cond, int flags)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_destroy(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_destroy(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
#ifdef HAVE_PTHREAD_COND_INIT
 | 
			
		||||
    int r = pthread_cond_destroy(&cond->cond);
 | 
			
		||||
| 
						 | 
				
			
			@ -305,7 +305,7 @@ native_cond_destroy(rb_thread_cond_t *cond)
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_signal(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_signal(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    do {
 | 
			
		||||
| 
						 | 
				
			
			@ -317,7 +317,7 @@ native_cond_signal(rb_thread_cond_t *cond)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_broadcast(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_broadcast(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
    do {
 | 
			
		||||
| 
						 | 
				
			
			@ -329,7 +329,7 @@ native_cond_broadcast(rb_thread_cond_t *cond)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_wait(rb_thread_cond_t *cond, pthread_mutex_t *mutex)
 | 
			
		||||
native_cond_wait(rb_nativethread_cond_t *cond, pthread_mutex_t *mutex)
 | 
			
		||||
{
 | 
			
		||||
    int r = pthread_cond_wait(&cond->cond, mutex);
 | 
			
		||||
    if (r != 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -338,7 +338,7 @@ native_cond_wait(rb_thread_cond_t *cond, pthread_mutex_t *mutex)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
native_cond_timedwait(rb_thread_cond_t *cond, pthread_mutex_t *mutex, struct timespec *ts)
 | 
			
		||||
native_cond_timedwait(rb_nativethread_cond_t *cond, pthread_mutex_t *mutex, struct timespec *ts)
 | 
			
		||||
{
 | 
			
		||||
    int r;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -360,7 +360,7 @@ native_cond_timedwait(rb_thread_cond_t *cond, pthread_mutex_t *mutex, struct tim
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct timespec
 | 
			
		||||
native_cond_timeout(rb_thread_cond_t *cond, struct timespec timeout_rel)
 | 
			
		||||
native_cond_timeout(rb_nativethread_cond_t *cond, struct timespec timeout_rel)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
    struct timeval tv;
 | 
			
		||||
| 
						 | 
				
			
			@ -764,7 +764,7 @@ thread_start_func_1(void *th_ptr)
 | 
			
		|||
 | 
			
		||||
struct cached_thread_entry {
 | 
			
		||||
    volatile rb_thread_t **th_area;
 | 
			
		||||
    rb_thread_cond_t *cond;
 | 
			
		||||
    rb_nativethread_cond_t *cond;
 | 
			
		||||
    struct cached_thread_entry *next;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -776,7 +776,7 @@ struct cached_thread_entry *cached_thread_root;
 | 
			
		|||
static rb_thread_t *
 | 
			
		||||
register_cached_thread_and_wait(void)
 | 
			
		||||
{
 | 
			
		||||
    rb_thread_cond_t cond = { PTHREAD_COND_INITIALIZER, };
 | 
			
		||||
    rb_nativethread_cond_t cond = { PTHREAD_COND_INITIALIZER, };
 | 
			
		||||
    volatile rb_thread_t *th_area = 0;
 | 
			
		||||
    struct timeval tv;
 | 
			
		||||
    struct timespec ts;
 | 
			
		||||
| 
						 | 
				
			
			@ -957,7 +957,7 @@ native_sleep(rb_thread_t *th, struct timeval *timeout_tv)
 | 
			
		|||
{
 | 
			
		||||
    struct timespec timeout;
 | 
			
		||||
    pthread_mutex_t *lock = &th->interrupt_lock;
 | 
			
		||||
    rb_thread_cond_t *cond = &th->native_thread_data.sleep_cond;
 | 
			
		||||
    rb_nativethread_cond_t *cond = &th->native_thread_data.sleep_cond;
 | 
			
		||||
 | 
			
		||||
    if (timeout_tv) {
 | 
			
		||||
	struct timespec timeout_rel;
 | 
			
		||||
| 
						 | 
				
			
			@ -1344,7 +1344,7 @@ void rb_thread_wakeup_timer_thread(void) {}
 | 
			
		|||
static void rb_thread_wakeup_timer_thread_low(void) {}
 | 
			
		||||
 | 
			
		||||
static pthread_mutex_t timer_thread_lock;
 | 
			
		||||
static rb_thread_cond_t timer_thread_cond;
 | 
			
		||||
static rb_nativethread_cond_t timer_thread_cond;
 | 
			
		||||
 | 
			
		||||
static inline void
 | 
			
		||||
timer_thread_sleep(rb_global_vm_lock_t* unused)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,11 +23,11 @@ typedef struct rb_thread_cond_struct {
 | 
			
		|||
#ifdef HAVE_CLOCKID_T
 | 
			
		||||
    clockid_t clockid;
 | 
			
		||||
#endif
 | 
			
		||||
} rb_thread_cond_t;
 | 
			
		||||
} rb_nativethread_cond_t;
 | 
			
		||||
 | 
			
		||||
typedef struct native_thread_data_struct {
 | 
			
		||||
    void *signal_thread_list;
 | 
			
		||||
    rb_thread_cond_t sleep_cond;
 | 
			
		||||
    rb_nativethread_cond_t sleep_cond;
 | 
			
		||||
} native_thread_data_t;
 | 
			
		||||
 | 
			
		||||
#include <semaphore.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -44,11 +44,11 @@ typedef struct rb_global_vm_lock_struct {
 | 
			
		|||
 | 
			
		||||
    /* slow path */
 | 
			
		||||
    volatile unsigned long waiting;
 | 
			
		||||
    rb_thread_cond_t cond;
 | 
			
		||||
    rb_nativethread_cond_t cond;
 | 
			
		||||
 | 
			
		||||
    /* yield */
 | 
			
		||||
    rb_thread_cond_t switch_cond;
 | 
			
		||||
    rb_thread_cond_t switch_wait_cond;
 | 
			
		||||
    rb_nativethread_cond_t switch_cond;
 | 
			
		||||
    rb_nativethread_cond_t switch_wait_cond;
 | 
			
		||||
    int need_yield;
 | 
			
		||||
    int wait_yield;
 | 
			
		||||
} rb_global_vm_lock_t;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -401,7 +401,7 @@ struct cond_event_entry {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_signal(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_signal(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
    /* cond is guarded by mutex */
 | 
			
		||||
    struct cond_event_entry *e = cond->next;
 | 
			
		||||
| 
						 | 
				
			
			@ -420,7 +420,7 @@ native_cond_signal(rb_thread_cond_t *cond)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_broadcast(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_broadcast(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
    /* cond is guarded by mutex */
 | 
			
		||||
    struct cond_event_entry *e = cond->next;
 | 
			
		||||
| 
						 | 
				
			
			@ -442,7 +442,7 @@ native_cond_broadcast(rb_thread_cond_t *cond)
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
native_cond_timedwait_ms(rb_thread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec)
 | 
			
		||||
native_cond_timedwait_ms(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec)
 | 
			
		||||
{
 | 
			
		||||
    DWORD r;
 | 
			
		||||
    struct cond_event_entry entry;
 | 
			
		||||
| 
						 | 
				
			
			@ -473,7 +473,7 @@ native_cond_timedwait_ms(rb_thread_cond_t *cond, rb_nativethread_lock_t *mutex,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
native_cond_wait(rb_thread_cond_t *cond, rb_nativethread_lock_t *mutex)
 | 
			
		||||
native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex)
 | 
			
		||||
{
 | 
			
		||||
    return native_cond_timedwait_ms(cond, mutex, INFINITE);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -495,7 +495,7 @@ abs_timespec_to_timeout_ms(struct timespec *ts)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
native_cond_timedwait(rb_thread_cond_t *cond, rb_nativethread_lock_t *mutex, struct timespec *ts)
 | 
			
		||||
native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, struct timespec *ts)
 | 
			
		||||
{
 | 
			
		||||
    unsigned long timeout_ms;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -507,7 +507,7 @@ native_cond_timedwait(rb_thread_cond_t *cond, rb_nativethread_lock_t *mutex, str
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct timespec
 | 
			
		||||
native_cond_timeout(rb_thread_cond_t *cond, struct timespec timeout_rel)
 | 
			
		||||
native_cond_timeout(rb_nativethread_cond_t *cond, struct timespec timeout_rel)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
    struct timeval tv;
 | 
			
		||||
| 
						 | 
				
			
			@ -537,14 +537,14 @@ native_cond_timeout(rb_thread_cond_t *cond, struct timespec timeout_rel)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_initialize(rb_thread_cond_t *cond, int flags)
 | 
			
		||||
native_cond_initialize(rb_nativethread_cond_t *cond, int flags)
 | 
			
		||||
{
 | 
			
		||||
    cond->next = (struct cond_event_entry *)cond;
 | 
			
		||||
    cond->prev = (struct cond_event_entry *)cond;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
native_cond_destroy(rb_thread_cond_t *cond)
 | 
			
		||||
native_cond_destroy(rb_nativethread_cond_t *cond)
 | 
			
		||||
{
 | 
			
		||||
    /* */
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,7 @@ typedef union rb_thread_lock_union {
 | 
			
		|||
typedef struct rb_thread_cond_struct {
 | 
			
		||||
    struct cond_event_entry *next;
 | 
			
		||||
    struct cond_event_entry *prev;
 | 
			
		||||
} rb_thread_cond_t;
 | 
			
		||||
} rb_nativethread_cond_t;
 | 
			
		||||
 | 
			
		||||
typedef struct native_thread_data_struct {
 | 
			
		||||
    HANDLE interrupt_event;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -553,7 +553,7 @@ typedef struct rb_thread_struct {
 | 
			
		|||
    rb_atomic_t interrupt_flag;
 | 
			
		||||
    unsigned long interrupt_mask;
 | 
			
		||||
    rb_nativethread_lock_t interrupt_lock;
 | 
			
		||||
    rb_thread_cond_t interrupt_cond;
 | 
			
		||||
    rb_nativethread_cond_t interrupt_cond;
 | 
			
		||||
    struct rb_unblock_callback unblock;
 | 
			
		||||
    VALUE locking_mutex;
 | 
			
		||||
    struct rb_mutex_struct *keeping_mutexes;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue