svn commit: r261636 - stable/10/lib/libthr/thread

Konstantin Belousov kib at FreeBSD.org
Sat Feb 8 15:51:25 UTC 2014


Author: kib
Date: Sat Feb  8 15:51:24 2014
New Revision: 261636
URL: http://svnweb.freebsd.org/changeset/base/261636

Log:
  MFC r261354:
  In _pthread_kill(), if passed pthread is current thread, do not send
  the signal second time, by adding the missed else before if statement.
  
  PR:	threads/186309

Modified:
  stable/10/lib/libthr/thread/thr_kill.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libthr/thread/thr_kill.c
==============================================================================
--- stable/10/lib/libthr/thread/thr_kill.c	Sat Feb  8 13:51:15 2014	(r261635)
+++ stable/10/lib/libthr/thread/thr_kill.c	Sat Feb  8 15:51:24 2014	(r261636)
@@ -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);


More information about the svn-src-all mailing list