Fix a bug that caused multiple user entries to be inserted into the sqlite db when the db was locked by some other process.
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@448 db0b04b0-f4d1-0310-9a6d-de3e77497b0e
This commit is contained in:
parent
5d0bfc1b21
commit
dfc4cc51d1
|
@ -1347,10 +1347,10 @@ userexist (char *cname, int isnew)
|
||||||
userexist_tmp_me = NULL;
|
userexist_tmp_me = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
sqlite3_busy_timeout(db, 10000);
|
||||||
ret = sqlite3_exec(db, qbuf, userexist_callback, 0, &errmsg);
|
ret = sqlite3_exec(db, qbuf, userexist_callback, 0, &errmsg);
|
||||||
if (ret == SQLITE_BUSY) sleep(1);
|
|
||||||
} while ((ret == SQLITE_BUSY) && (retry-- > 0));
|
sqlite3_free(qbuf);
|
||||||
|
|
||||||
if (ret != SQLITE_OK) {
|
if (ret != SQLITE_OK) {
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
|
@ -1358,8 +1358,6 @@ userexist (char *cname, int isnew)
|
||||||
}
|
}
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
|
|
||||||
sqlite3_free(qbuf);
|
|
||||||
|
|
||||||
return userexist_tmp_me;
|
return userexist_tmp_me;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1565,10 +1563,8 @@ writefile (int requirenew)
|
||||||
graceful_exit(107);
|
graceful_exit(107);
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
sqlite3_busy_timeout(db, 10000);
|
||||||
ret = sqlite3_exec(db, qbuf, NULL, NULL, &errmsg);
|
ret = sqlite3_exec(db, qbuf, NULL, NULL, &errmsg);
|
||||||
if (ret == SQLITE_BUSY) sleep(1);
|
|
||||||
} while ((ret == SQLITE_BUSY) && (retry-- > 0));
|
|
||||||
|
|
||||||
sqlite3_free(qbuf);
|
sqlite3_free(qbuf);
|
||||||
|
|
||||||
|
@ -1576,7 +1572,6 @@ writefile (int requirenew)
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
graceful_exit(106);
|
graceful_exit(106);
|
||||||
}
|
}
|
||||||
|
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue