diff options
author | unknown <davi@mysql.com/endora.local> | 2008-03-19 15:01:03 -0300 |
---|---|---|
committer | unknown <davi@mysql.com/endora.local> | 2008-03-19 15:01:03 -0300 |
commit | edce44eea0b09d0d052c9d8f2ba523136a6644b2 (patch) | |
tree | 37b6e3f337937e28410e514cb539d7368dea1880 /include | |
parent | f77686df0d15757ee4003ec42e4d1268b1137dd5 (diff) | |
download | mariadb-git-edce44eea0b09d0d052c9d8f2ba523136a6644b2.tar.gz |
Bug#30960 processlist state '*** DEAD ***' on recent 5.0.48 windows builds
The problem is that unimplemented WIN32 version of pthread_kill
is returning ESRCH no matter the arguments, causing calls to
mysqld_list_processes to set the procinfo to dead because
pthread_kill returns non zero. The dead procinfo would show
up on a second invocation of show processlist.
include/my_pthread.h:
When unimplemented, pthread_kill must return zero for
any process id other then zero.
Diffstat (limited to 'include')
-rw-r--r-- | include/my_pthread.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h index 13b7cf93d6f..51202d6665e 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -181,7 +181,7 @@ extern int pthread_mutex_destroy (pthread_mutex_t *); #define pthread_mutex_unlock(A) LeaveCriticalSection(A) #define pthread_mutex_destroy(A) DeleteCriticalSection(A) #define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #endif /* OS2 */ /* Dummy defines for easier code */ @@ -445,14 +445,14 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res); #define pthread_attr_setdetachstate(A,B) pthread_dummy(0) #define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #undef pthread_detach_this_thread #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } #endif #ifdef HAVE_DARWIN5_THREADS #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #define pthread_condattr_init(A) pthread_dummy(0) #define pthread_condattr_destroy(A) pthread_dummy(0) #undef pthread_detach_this_thread @@ -472,7 +472,7 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res); #ifndef pthread_sigmask #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) #endif -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #undef pthread_detach_this_thread #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } #elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */ |