Issue #1103310 by c960657: lock_acquire() does not properly extend expired lock due...
authorGábor Hojtsy
Wed, 23 Nov 2011 10:43:59 +0000 (11:43 +0100)
committerGábor Hojtsy
Wed, 23 Nov 2011 10:43:59 +0000 (11:43 +0100)
includes/lock.inc

index 0bc6786..7259ad9 100644 (file)
@@ -102,7 +102,8 @@ function lock_acquire($name, $timeout = 30.0) {
   $expire = (float)$usec + (float)$sec + $timeout;
   if (isset($locks[$name])) {
     // Try to extend the expiration of a lock we already acquired.
-    if (!db_result(db_query("UPDATE {semaphore} SET expire = %f WHERE name = '%s' AND value = '%s'", $expire, $name, _lock_id()))) {
+    db_query("UPDATE {semaphore} SET expire = %f WHERE name = '%s' AND value = '%s'", $expire, $name, _lock_id());
+    if (!db_affected_rows()) {
       // The lock was broken.
       unset($locks[$name]);
     }