summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordavi@mysql.com/endora.local <>2008-03-19 15:01:03 -0300
committerdavi@mysql.com/endora.local <>2008-03-19 15:01:03 -0300
commit3958a755b9718c0cd3119f27055b225720a56f9c (patch)
tree37b6e3f337937e28410e514cb539d7368dea1880 /include
parent50c37672a757900f8812de0b3c2da50249ed69a2 (diff)
downloadmariadb-git-3958a755b9718c0cd3119f27055b225720a56f9c.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.
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 */