1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* thread_pthread.c (register_cached_thread_and_wait):

return immediately if malloc() failed.
  [ruby-core:43960] [ruby-trunk - Bug #6235]
* thread_pthread.c (USE_THREAD_CACHE): check already defined or not.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2012-06-26 08:01:35 +00:00
parent 5605afa5e2
commit 91aba07aff
2 changed files with 16 additions and 2 deletions

View file

@ -1,3 +1,11 @@
Tue Jun 26 16:57:14 2012 Koichi Sasada <ko1@atdot.net>
* thread_pthread.c (register_cached_thread_and_wait):
return immediately if malloc() failed.
[ruby-core:43960] [ruby-trunk - Bug #6235]
* thread_pthread.c (USE_THREAD_CACHE): check already defined or not.
Tue Jun 26 10:01:56 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (rb_io_s_popen): revert r36213 "popen: shell commands with

View file

@ -480,7 +480,9 @@ native_thread_destroy(rb_thread_t *th)
#endif
}
#ifndef USE_THREAD_CACHE
#define USE_THREAD_CACHE 0
#endif
#if USE_THREAD_CACHE
static rb_thread_t *register_cached_thread_and_wait(void);
@ -717,11 +719,15 @@ register_cached_thread_and_wait(void)
{
rb_thread_cond_t cond = { PTHREAD_COND_INITIALIZER, };
volatile rb_thread_t *th_area = 0;
struct timeval tv;
struct timespec ts;
struct cached_thread_entry *entry =
(struct cached_thread_entry *)malloc(sizeof(struct cached_thread_entry));
struct timeval tv;
struct timespec ts;
if (entry == 0) {
return 0; /* failed -> terminate thread immediately */
}
gettimeofday(&tv, 0);
ts.tv_sec = tv.tv_sec + 60;
ts.tv_nsec = tv.tv_usec * 1000;