bpo-31653: Remove deadcode in semlock_acquire() (#4091)
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 23 Oct 2017 20:57:51 +0000 (13:57 -0700)
committerGitHub <noreply@github.com>
Mon, 23 Oct 2017 20:57:51 +0000 (13:57 -0700)
Fix the following Coverity warning:

>>>     CID 1420038:  Control flow issues  (DEADCODE)
>>>     Execution cannot reach this statement: "res = sem_trywait(self->han...".
321                     res = sem_trywait(self->handle);

The deadcode was introduced by the commit
c872d39d324cd6f1a71b73e10406bbaed192d35f.

Modules/_multiprocessing/semaphore.c

index 337e89432127fa4246daf4fe82fdc9b83367f68e..0092b13934641686f1a63aeefd88f5af6e17de4a 100644 (file)
@@ -315,12 +315,12 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)
         /* Couldn't acquire immediately, need to block */
         do {
             Py_BEGIN_ALLOW_THREADS
-            if (blocking && timeout_obj == Py_None)
+            if (timeout_obj == Py_None) {
                 res = sem_wait(self->handle);
-            else if (!blocking)
-                res = sem_trywait(self->handle);
-            else
+            }
+            else {
                 res = sem_timedwait(self->handle, &deadline);
+            }
             Py_END_ALLOW_THREADS
             err = errno;
             if (res == MP_EXCEPTION_HAS_BEEN_SET)