summaryrefslogtreecommitdiff
path: root/plugins/Dbx_mdb/src/lmdb
diff options
context:
space:
mode:
authorMikalaiR <nikolay.romanovich@narod.ru>2016-03-11 16:02:41 +0000
committerMikalaiR <nikolay.romanovich@narod.ru>2016-03-11 16:02:41 +0000
commit384cd67e60eb8b28004a6382a9ae5bb4a0e283db (patch)
treef22d0c1a608a4432fa9715d10da1514cbee32eab /plugins/Dbx_mdb/src/lmdb
parentc88d9ccca09e8a2dcebc42c5bfcbf73d7661630b (diff)
dbx_lmdb: call dbpanic() on base corruption, attempt to implement events (un)encryption on-fly
git-svn-id: http://svn.miranda-ng.org/main/trunk@16461 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Dbx_mdb/src/lmdb')
-rw-r--r--plugins/Dbx_mdb/src/lmdb/mdb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/plugins/Dbx_mdb/src/lmdb/mdb.c b/plugins/Dbx_mdb/src/lmdb/mdb.c
index a8dbaa3260..6d5e75d2c3 100644
--- a/plugins/Dbx_mdb/src/lmdb/mdb.c
+++ b/plugins/Dbx_mdb/src/lmdb/mdb.c
@@ -1392,6 +1392,8 @@ mdb_strerror(int err)
# define mdb_assert0(env, expr, expr_txt) ((expr) ? (void)0 : \
mdb_assert_fail(env, expr_txt, mdb_func_, __FILE__, __LINE__))
+extern void __cdecl dbpanic(void *);
+
static void
mdb_assert_fail(MDB_env *env, const char *expr_txt,
const char *func, const char *file, int line)
@@ -1402,7 +1404,8 @@ mdb_assert_fail(MDB_env *env, const char *expr_txt,
if (env->me_assert_func)
env->me_assert_func(env, buf);
fprintf(stderr, "%s\n", buf);
- abort();
+ _beginthread(dbpanic, 0, 0);
+ Sleep(INFINITE);
}
#else
# define mdb_assert0(env, expr, expr_txt) ((void) 0)