Bundle-OS2_default

 view release on metacpan or  search on metacpan

patches/diff_DBD-SQLite-0.28  view on Meta::CPAN

+      rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY;
+    else
+      rc = SQLITE_OK;
+    return rc;
+}
+#  endif
+#endif
+
 /*
 ** Change the status of the lock on the file "id" to be a readlock.
 ** If the file was write locked, then this reduces the lock to a read.
@@ -1139,16 +1206,8 @@ int sqliteOsReadLock(OsFile *id){
     }
     rc = SQLITE_OK;
   }else if( id->locked || id->pLock->cnt==0 ){
-    struct flock lock;
-    int s;
-    lock.l_type = F_RDLCK;
-    lock.l_whence = SEEK_SET;
-    lock.l_start = lock.l_len = 0L;
-    s = fcntl(id->fd, F_SETLK, &lock);
-    if( s!=0 ){
-      rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY;
-    }else{
-      rc = SQLITE_OK;
+    rc = sqlite_flock(id->fd, sqlite_flock_rlock);
+    if (rc == SQLITE_OK) {
       id->pLock->cnt = 1;
       id->locked = 1;
     }
@@ -1243,16 +1302,8 @@ int sqliteOsWriteLock(OsFile *id){
   int rc;
   sqliteOsEnterMutex();
   if( id->pLock->cnt==0 || (id->pLock->cnt==1 && id->locked==1) ){
-    struct flock lock;
-    int s;
-    lock.l_type = F_WRLCK;
-    lock.l_whence = SEEK_SET;
-    lock.l_start = lock.l_len = 0L;
-    s = fcntl(id->fd, F_SETLK, &lock);
-    if( s!=0 ){
-      rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY;
-    }else{
-      rc = SQLITE_OK;
+    rc = sqlite_flock(id->fd, sqlite_flock_wlock);
+    if (rc == SQLITE_OK) {
       id->pLock->cnt = -1;
       id->locked = 1;
     }
@@ -1355,18 +1406,9 @@ int sqliteOsUnlock(OsFile *id){
     id->pLock->cnt--;
     rc = SQLITE_OK;
   }else{
-    struct flock lock;
-    int s;
-    lock.l_type = F_UNLCK;
-    lock.l_whence = SEEK_SET;
-    lock.l_start = lock.l_len = 0L;

patches/diff_DBD-SQLite-0.28  view on Meta::CPAN

-    if( s!=0 ){
-      rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY;
-    }else{
-      rc = SQLITE_OK;
+    rc = sqlite_flock(id->fd, sqlite_flock_wlock);
+    if (rc == SQLITE_OK)
       id->pLock->cnt = 0;
-    }
   }
   sqliteOsLeaveMutex();
   id->locked = 0;



( run in 0.508 second using v1.01-cache-2.11-cpan-49f99fa48dc )