diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-02-29 16:44:13 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-02-29 16:44:13 +0100 |
commit | 45ee133d1d7392efcb446f5f79cf47cf792ee21a (patch) | |
tree | a65e2d4cec1f55f91f5cc661f60ac6536a1f3ec1 /openbsc/src/utils | |
parent | 5b38312b92607247afee1532d78ccc88f001c933 (diff) |
check return value of sqlite3_close(), retry up to three times.
Diffstat (limited to 'openbsc/src/utils')
-rw-r--r-- | openbsc/src/utils/meas_db.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/openbsc/src/utils/meas_db.c b/openbsc/src/utils/meas_db.c index 2e70b313b..cf4ce6e2e 100644 --- a/openbsc/src/utils/meas_db.c +++ b/openbsc/src/utils/meas_db.c @@ -314,10 +314,20 @@ err_io: void meas_db_close(struct meas_db_state *st) { + int retries; sqlite3_finalize(st->stmt_ins_mr); sqlite3_finalize(st->stmt_ins_ud); sqlite3_finalize(st->stmt_upd_mr); - sqlite3_close(st->db); + retries = 0; + while (1) { + if (sqlite3_close(st->db) == SQLITE_OK) + break; + if ((++retries) >= 3) { + fprintf(stderr, "Unable to close DB\n"); + break; + } + sleep(1); + } talloc_free(st); |