You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by da...@apache.org on 2007/07/22 02:14:06 UTC

svn commit: r558403 - /apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c

Author: davi
Date: Sat Jul 21 17:14:05 2007
New Revision: 558403

URL: http://svn.apache.org/viewvc?view=rev&rev=558403
Log:
Use the APR_FLOCK_TYPEMASK mask to extract the lock type (shared or exclusive)
while still preserving the other bits. This change allows the APR_FLOCK_NONBLOCK
flag to be passed to apr_file_lock().

PR: 28718

Modified:
    apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c

Modified: apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c
URL: http://svn.apache.org/viewvc/apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c?view=diff&rev=558403&r1=558402&r2=558403
==============================================================================
--- apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c (original)
+++ apr/apr-util/trunk/dbm/sdbm/sdbm_lock.c Sat Jul 21 17:14:05 2007
@@ -21,12 +21,13 @@
 #include "sdbm_private.h"
 #include "sdbm_tune.h"
 
-/* NOTE: this function blocks until it acquires the lock */
+/* NOTE: this function may block until it acquires the lock */
 APU_DECLARE(apr_status_t) apr_sdbm_lock(apr_sdbm_t *db, int type)
 {
     apr_status_t status;
+    int lock_type = type & APR_FLOCK_TYPEMASK;
 
-    if (!(type == APR_FLOCK_SHARED || type == APR_FLOCK_EXCLUSIVE))
+    if (!(lock_type == APR_FLOCK_SHARED || lock_type == APR_FLOCK_EXCLUSIVE))
         return APR_EINVAL;
 
     if (db->flags & SDBM_EXCLUSIVE_LOCK) {