зеркало из https://github.com/github/ruby.git
thread_pthread.c: define attr only if used
* thread_pthread.c (native_thread_create): define attr only if it is used, and merge pthread_create() calls. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
7703ba8544
Коммит
b59b1b9bd9
|
@ -1,4 +1,7 @@
|
|||
Fri Aug 30 22:37:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Fri Aug 30 22:37:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* thread_pthread.c (native_thread_create): define attr only if it is
|
||||
used, and merge pthread_create() calls.
|
||||
|
||||
* thread_pthread.c (get_main_stack): separate function to get stack of
|
||||
main thread.
|
||||
|
|
|
@ -901,7 +901,12 @@ native_thread_create(rb_thread_t *th)
|
|||
thread_debug("create (use cached thread): %p\n", (void *)th);
|
||||
}
|
||||
else {
|
||||
#ifdef HAVE_PTHREAD_ATTR_INIT
|
||||
pthread_attr_t attr;
|
||||
pthread_attr_t *const attrp = &attr;
|
||||
#else
|
||||
pthread_attr_t *const attrp = NULL;
|
||||
#endif
|
||||
const size_t stack_size = th->vm->default_params.thread_machine_stack_size;
|
||||
const size_t space = space_size(stack_size);
|
||||
|
||||
|
@ -923,11 +928,8 @@ native_thread_create(rb_thread_t *th)
|
|||
CHECK_ERR(pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED));
|
||||
# endif
|
||||
CHECK_ERR(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED));
|
||||
|
||||
err = pthread_create(&th->thread_id, &attr, thread_start_func_1, th);
|
||||
#else
|
||||
err = pthread_create(&th->thread_id, NULL, thread_start_func_1, th);
|
||||
#endif
|
||||
err = pthread_create(&th->thread_id, attrp, thread_start_func_1, th);
|
||||
thread_debug("create: %p (%d)\n", (void *)th, err);
|
||||
#ifdef HAVE_PTHREAD_ATTR_INIT
|
||||
CHECK_ERR(pthread_attr_destroy(&attr));
|
||||
|
|
Загрузка…
Ссылка в новой задаче