]> skyeroc.xyz Git - dgamelaunch/commitdiff
Fix a bug that caused multiple user entries to be inserted into the sqlite db when...
authorPasi Kallinen <paxed@alt.org>
Sat, 23 Aug 2008 09:47:04 +0000 (09:47 +0000)
committerPasi Kallinen <paxed@alt.org>
Sat, 23 Aug 2008 09:47:04 +0000 (09:47 +0000)
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@448 db0b04b0-f4d1-0310-9a6d-de3e77497b0e

dgamelaunch.c

index 2732fb49ac10fafcb9f777e7551b0d62d0221d53..8ea882b63bd997c29f1b2d93ad55c55fe7e100fd 100644 (file)
@@ -1347,10 +1347,10 @@ userexist (char *cname, int isnew)
        userexist_tmp_me = NULL;
     }
 
-    do {
-       ret = sqlite3_exec(db, qbuf, userexist_callback, 0, &errmsg);
-       if (ret == SQLITE_BUSY) sleep(1);
-    } while ((ret == SQLITE_BUSY) && (retry-- > 0));
+    sqlite3_busy_timeout(db, 10000);
+    ret = sqlite3_exec(db, qbuf, userexist_callback, 0, &errmsg);
+
+    sqlite3_free(qbuf);
 
     if (ret != SQLITE_OK) {
        sqlite3_close(db);
@@ -1358,8 +1358,6 @@ userexist (char *cname, int isnew)
     }
     sqlite3_close(db);
 
-    sqlite3_free(qbuf);
-
     return userexist_tmp_me;
 }
 #endif
@@ -1565,10 +1563,8 @@ writefile (int requirenew)
        graceful_exit(107);
     }
 
-    do {
-       ret = sqlite3_exec(db, qbuf, NULL, NULL, &errmsg);
-       if (ret == SQLITE_BUSY) sleep(1);
-    } while ((ret == SQLITE_BUSY) && (retry-- > 0));
+    sqlite3_busy_timeout(db, 10000);
+    ret = sqlite3_exec(db, qbuf, NULL, NULL, &errmsg);
 
     sqlite3_free(qbuf);
 
@@ -1576,7 +1572,6 @@ writefile (int requirenew)
        sqlite3_close(db);
        graceful_exit(106);
     }
-
     sqlite3_close(db);
 }
 #endif