提交 b6f7b354 authored 作者: Anthony Minessale's avatar Anthony Minessale

add retry on lock to core sql func

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6505 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 26fccbdd
......@@ -79,7 +79,22 @@ SWITCH_DECLARE(const char *) switch_core_db_errmsg(switch_core_db_t *db)
SWITCH_DECLARE(int) switch_core_db_exec(switch_core_db_t *db, const char *sql, switch_core_db_callback_func_t callback, void *data, char **errmsg)
{
return sqlite3_exec(db, sql, callback, data, errmsg);
int ret;
int sane = 100;
while(--sane > 0) {
ret = sqlite3_exec(db, sql, callback, data, errmsg);
if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
switch_safe_free(*errmsg);
switch_yield(1000);
continue;
} else {
break;
}
}
return ret;
}
SWITCH_DECLARE(int) switch_core_db_finalize(switch_core_db_stmt_t *pStmt)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论