summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <davi@mysql.com/endora.local>2008-03-19 15:01:03 -0300
committerunknown <davi@mysql.com/endora.local>2008-03-19 15:01:03 -0300
commitedce44eea0b09d0d052c9d8f2ba523136a6644b2 (patch)
tree37b6e3f337937e28410e514cb539d7368dea1880 /include
parentf77686df0d15757ee4003ec42e4d1268b1137dd5 (diff)
downloadmariadb-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.h8
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 */