summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-18 06:57:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-18 06:57:08 +0000
commit3a4bfbad0976c60dd557dcdb64b390d055e6446b ()
tree8b3c67f1abe3bd3563c89bfd05b5b20d484aa0db
parentb66eb536507d4837948d615ef61b25c01a2e07ff (diff)
* thread.c (thread_cleanup_func): ignore errors from destroying mutex
of dead thread. [ruby-core:15069] * thread_pthread.c, thread_win32.c (native_thread_destroy): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--thread.c1
-rw-r--r--thread_pthread.c2
-rw-r--r--thread_win32.c1
4 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,10 @@
Fri Jan 18 15:56:04 2008 Nobuyoshi Nakada <[email protected]>
* encoding.c (rb_enc_name_list_i, rb_enc_aliases_enc_i): freeze
@@ -281,7 +281,6 @@ thread_cleanup_func(void *th_ptr)
#ifdef __ia64
th->machine_register_stack_start = th->machine_register_stack_end = 0;
#endif
- native_mutex_destroy(&th->interrupt_lock);
native_thread_destroy(th);
}
@@ -13,7 +13,6 @@
static void native_mutex_lock(pthread_mutex_t *lock);
static void native_mutex_unlock(pthread_mutex_t *lock);
-static void native_mutex_destroy(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);
@@ -156,6 +155,7 @@ Init_native_thread(void)
static void
native_thread_destroy(rb_thread_t *th)
{
pthread_cond_destroy(&th->native_thread_data.sleep_cond);
}
@@ -418,6 +418,7 @@ static void
native_thread_destroy(rb_thread_t *th)
{
HANDLE intr = th->native_thread_data.interrupt_event;
thread_debug("close handle - intr: %p, thid: %p\n", intr, th->thread_id);
th->native_thread_data.interrupt_event = 0;
w32_close_handle(intr);