threads/186309: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Sat Feb 1 18:20:01 UTC 2014
The following reply was made to PR threads/186309; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: threads/186309: commit references a PR
Date: Sat, 1 Feb 2014 18:13:26 +0000 (UTC)
Author: kib
Date: Sat Feb 1 18:13:18 2014
New Revision: 261354
URL: http://svnweb.freebsd.org/changeset/base/261354
Log:
In _pthread_kill(), if passed pthread is current thread, do not send
the signal second time, by adding the missed else before if statement.
While there, postpone initializing local curthread variable until
passed signal number is checked for validity.
Submitted by: John Wolfe <jlw at xinuos.com>
PR: threads/186309
MFC after: 1 week
Modified:
head/lib/libthr/thread/thr_kill.c
Modified: head/lib/libthr/thread/thr_kill.c
==============================================================================
--- head/lib/libthr/thread/thr_kill.c Sat Feb 1 17:53:35 2014 (r261353)
+++ head/lib/libthr/thread/thr_kill.c Sat Feb 1 18:13:18 2014 (r261354)
@@ -42,24 +42,27 @@ __weak_reference(_pthread_kill, pthread_
int
_pthread_kill(pthread_t pthread, int sig)
{
- struct pthread *curthread = _get_curthread();
+ struct pthread *curthread;
int ret;
/* Check for invalid signal numbers: */
if (sig < 0 || sig > _SIG_MAXSIG)
/* Invalid signal: */
- ret = EINVAL;
+ return (EINVAL);
+
+ curthread = _get_curthread();
+
/*
* Ensure the thread is in the list of active threads, and the
* signal is valid (signal 0 specifies error checking only) and
* not being ignored:
*/
- else if (curthread == pthread) {
+ if (curthread == pthread) {
if (sig > 0)
_thr_send_sig(pthread, sig);
ret = 0;
- } if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0))
- == 0) {
+ } else if ((ret = _thr_find_thread(curthread, pthread,
+ /*include dead*/0)) == 0) {
if (sig > 0)
_thr_send_sig(pthread, sig);
THR_THREAD_UNLOCK(curthread, pthread);
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-threads
mailing list