From 28b3218e453f6c173f76f86beec5a4f328b12bfd Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Thu, 19 Apr 2007 17:07:11 -0400 Subject: Bug #27964: pthread_key_create doesn't set errno, so don't report \ errno Vasil Dimov (at Oracle) noted that pthread_key_create() does not set errno, so if it fails then we return the wrong error code. Instead, capture the return value, which is the real error value, and instead report that. --- mysys/my_thr_init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'mysys/my_thr_init.c') diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index 7a5fdbf8ad6..da465385b3e 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -79,11 +79,12 @@ static uint get_thread_lib(void); my_bool my_thread_global_init(void) { + int pth_ret; thd_lib_detected= get_thread_lib(); - if (pthread_key_create(&THR_KEY_mysys,0)) + if (pth_ret= pthread_key_create(&THR_KEY_mysys, NULL)) { - fprintf(stderr,"Can't initialize threads: error %d\n",errno); + fprintf(stderr,"Can't initialize threads: pthread error %d\n", pth_ret); return 1; } -- cgit v1.2.1