From a33403b927d48c1b64b3094e9c2a12b4f95ad85d Mon Sep 17 00:00:00 2001 From: Max Lapshin Date: Wed, 14 Oct 2009 15:33:01 +0400 Subject: [PATCH] threaded sqlite --- priv/sqlite3_drv.c | 6 +++--- test.erl | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/priv/sqlite3_drv.c b/priv/sqlite3_drv.c index a67997e..98ded79 100644 --- a/priv/sqlite3_drv.c +++ b/priv/sqlite3_drv.c @@ -111,11 +111,11 @@ static int sql_exec(sqlite3_drv_t *drv, char *command, int command_size) { // fprintf(stderr, "Driver async: %d %p\n", SQLITE_VERSION_NUMBER, async_command->statement); - if (1) { + if (sqlite3_threadsafe()) { + drv->async_handle = driver_async(drv->port, &drv->key, sql_exec_async, async_command, sql_free_async); + } else { sql_exec_async(async_command); ready_async((ErlDrvData)drv, (ErlDrvThreadData)async_command); - } else { - drv->async_handle = driver_async(drv->port, &drv->key, sql_exec_async, async_command, sql_free_async); } return 0; } diff --git a/test.erl b/test.erl index e7928d4..ab3a5c9 100755 --- a/test.erl +++ b/test.erl @@ -18,7 +18,8 @@ test() -> sqlite3:delete(ct, user, {name, "abby"}), sqlite3:drop_table(ct, user), %sqlite3:delete_db(ct) - sqlite3:close(ct). + sqlite3:close(ct), + io:format("Tests passed~n"). main(_) -> try test() of