Skip to content

Commit bb37bd6

Browse files
committed
refactor log
1 parent c58c8a8 commit bb37bd6

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

c_src/common.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ static ERL_NIF_TERM ATOM_NO_LAYER;
1414
static ERL_NIF_TERM ATOM_NOT_FOUND;
1515
static ERL_NIF_TERM ATOM_DBI_NOT_FOUND;
1616
static ERL_NIF_TERM ATOM_EXISTS;
17-
static ERL_NIF_TERM ATOM_WRONGKEY;
17+
static ERL_NIF_TERM ATOM_WRONG_TYPE;
1818
static ERL_NIF_TERM ATOM_KEYEXIST;
1919
static ERL_NIF_TERM ATOM_NOTFOUND;
2020
static ERL_NIF_TERM ATOM_PAGE_NOTFOUND;

c_src/elmdb_nif.c

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static void lmdb_close(lmdb_env_t* lmdb) {
7979

8080
static void lmdb_dtor(ErlNifEnv* env, void* obj) {
8181
__UNUSED(env);
82-
INFO_LOG("env-dtor is destroying lmdb.env -> %p", obj);
82+
INFO("env-dtor is destroying lmdb.env -> %p", obj);
8383
lmdb_env_t *lmdb = (lmdb_env_t*)obj;
8484
lmdb_close(lmdb);
8585
}
@@ -106,7 +106,7 @@ static void lmdb_cursor_close(lmdb_cursor_t* cursor) {
106106
}
107107
static void lmdb_cursor_dtor(ErlNifEnv* env, void* obj) {
108108
__UNUSED(env);
109-
INFO_LOG("cursor-dtor is destroying, with lmdb.env: %p", obj);
109+
INFO("cursor-dtor is destroying, with lmdb.env: %p", obj);
110110
lmdb_cursor_t *cursor = (lmdb_cursor_t*)obj;
111111
lmdb_cursor_close(cursor);
112112
}
@@ -161,7 +161,6 @@ static ERL_NIF_TERM elmdb_init(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv
161161
unsigned int dbiflags = 0;
162162
CHECK(mdb_dbi_flags(rotxn, subdb, &dbiflags), err1);
163163
DBG("subdb -> name=%s, dbi=%d, dbiflags=%u", dbname, subdb, dbiflags);
164-
enif_fprintf(stdout,"subdb -> name=%s, dbi=%d, dbiflags=%u\r\n", dbname, subdb, dbiflags);
165164
kh_value(layers, k) = subdb;
166165
//mdb_dbi_close(ctx, subdb);
167166
}
@@ -173,6 +172,7 @@ static ERL_NIF_TERM elmdb_init(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv
173172

174173
lmdb_env_t *handle = enif_alloc_resource(lmdbEnvResType, sizeof(*handle));
175174
if (handle == NULL) FAIL_ERR(ENOMEM, err1);
175+
// why commit? If the transaction is aborted the dbi will be closed automatically
176176
mdb_txn_commit(rotxn);
177177

178178
handle->env = ctx;
@@ -215,7 +215,7 @@ static ERL_NIF_TERM elmdb_close(ErlNifEnv* env, int argc, const ERL_NIF_TERM arg
215215
ErlNifBinary layBin; \
216216
if (!enif_inspect_iolist_as_binary(env, lterm, &layBin)) { \
217217
err = enif_make_tuple2(env, ATOM_ERROR, \
218-
enif_make_tuple2(env, ATOM_DBI_NOT_FOUND, lterm)); \
218+
enif_make_tuple2(env, ATOM_WRONG_TYPE, lterm)); \
219219
goto label; \
220220
} \
221221
memcpy(layer, layBin.data, layBin.size); \
@@ -226,9 +226,13 @@ static ERL_NIF_TERM elmdb_path(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv
226226
lmdb_env_t *handle = NULL;
227227
CHECKOUT_ARG_FOR_DB(handle);
228228

229+
int ret;
230+
ERL_NIF_TERM err;
229231
const char* path;
230-
mdb_env_get_path(handle->env, &path);
232+
CHECK(mdb_env_get_path(handle->env, &path), err0);
231233
return enif_make_string(env, path, ERL_NIF_LATIN1);
234+
err0:
235+
return err;
232236
}
233237

234238
static ERL_NIF_TERM elmdb_drop(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) {
@@ -297,8 +301,7 @@ static ERL_NIF_TERM elmdb_count(ErlNifEnv* env, int argc, const ERL_NIF_TERM arg
297301

298302
MDB_txn *txn = NULL;
299303
CHECK(mdb_txn_begin(handle->env, NULL, MDB_RDONLY, &txn), err0);
300-
//MDB_dbi dbi;
301-
//CHECK(mdb_dbi_open(txn, dbname, 0, &dbi), err1);
304+
302305
MDB_stat mst;
303306
CHECK(mdb_stat(txn, dbi, &mst), err1);
304307
mdb_txn_abort(txn);
@@ -325,7 +328,7 @@ typedef struct my_key_s {
325328
case ERL_NIF_TERM_TYPE_BITSTRING: \
326329
if (!enif_inspect_binary(env, kterm, &mykey.keyBin)) { \
327330
err = enif_make_tuple2(env, ATOM_ERROR, \
328-
enif_make_tuple2(env, ATOM_WRONGKEY, kterm)); \
331+
enif_make_tuple2(env, ATOM_WRONG_TYPE, kterm)); \
329332
goto label; \
330333
} \
331334
mykey.key.mv_size = mykey.keyBin.size; \
@@ -335,7 +338,7 @@ typedef struct my_key_s {
335338
case ERL_NIF_TERM_TYPE_INTEGER: \
336339
if (!enif_get_int64(env, kterm, (ErlNifSInt64*)&mykey.keyInt)) { \
337340
err = enif_make_tuple2(env, ATOM_ERROR, \
338-
enif_make_tuple2(env, ATOM_WRONGKEY, kterm)); \
341+
enif_make_tuple2(env, ATOM_WRONG_TYPE, kterm)); \
339342
goto label; \
340343
} \
341344
mykey.key.mv_size = sizeof(ErlNifSInt64); \
@@ -598,6 +601,7 @@ static ERL_NIF_TERM elmdb_ls(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]
598601
ERL_NIF_TERM list = enif_make_list(env, 0);
599602
const char* dbname = NULL;
600603
MDB_dbi dbi;
604+
__UNUSED(dbi);
601605
enif_rwlock_rlock(handle->layers_rwlock);
602606
kh_foreach(handle->layers, dbname, dbi, {
603607
ERL_NIF_TERM hd = enif_make_string(env, dbname, ERL_NIF_LATIN1);
@@ -853,7 +857,9 @@ static ERL_NIF_TERM hello(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) {
853857
CHECKOUT_ARG_FOR_DB(handle);
854858
unsigned readers = 0;
855859
mdb_env_get_maxreaders(handle->env, &readers);
860+
INFO("Maxreaders: %u", readers);
856861
DBG("maxreaders: %u", readers);
862+
WARN("maxreaders: %u", readers);
857863

858864
int ret;
859865
MDB_txn* txn=NULL;
@@ -900,7 +906,7 @@ static int load(ErlNifEnv* env, void** priv_data, ERL_NIF_TERM load_info)
900906
ATOM_NOT_FOUND = enif_make_atom(env, "not_found");
901907
ATOM_DBI_NOT_FOUND = enif_make_atom(env, "dbi_not_found");
902908
ATOM_EXISTS = enif_make_atom(env, "exists");
903-
909+
ATOM_WRONG_TYPE = enif_make_atom(env, "wrong_type");
904910
ATOM_KEYEXIST = enif_make_atom(env, "key_exist");
905911
ATOM_NOTFOUND = enif_make_atom(env, "notfound");
906912
ATOM_CORRUPTED = enif_make_atom(env, "corrupted");

c_src/mylog.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,18 @@ long thrd_id() {
5555
#endif
5656

5757

58-
#ifdef NODEBUG
58+
#if defined(NODEBUG)
5959

6060
#define DBG(fmt, ...)
61-
#define WARN_LOG(fmt, ...)
61+
#define INFO(fmt, ...)
6262

6363
#else
6464

65-
#define DBG(fmt, ...) enif_fprintf(stdout, GREY("%s-%llx [%34s#%-5d@(tid:%llx)]") " " fmt "\r\n",enif_thread_name(enif_thread_self()), enif_thread_self(),__func__,__LINE__,thrd_id(), ##__VA_ARGS__)
66-
#define WARN(fmt, ...) enif_fprintf(stdout, B_MAGENTA("[%34s#%-5d@(tid:%llx)]") " " fmt "\r\n", __func__,__LINE__,thrd_id(), ##__VA_ARGS__)
67-
#define WARN_LOG(fmt, ...) enif_fprintf(stderr, B_YELLOW("[@(tid:%llx)] " fmt) "\r\n", thrd_id(), ##__VA_ARGS__)
65+
#define DBG(fmt, ...) enif_fprintf(stdout, GREY("%s-%llx [%32s#%-5d@(tid:%llx)]") " " fmt "\r\n",enif_thread_name(enif_thread_self()), enif_thread_self(),__func__,__LINE__,thrd_id(), ##__VA_ARGS__)
66+
#define INFO(fmt, ...) enif_fprintf(stderr, B_WHITE("[%32s#%-5d@(tid:%llx)] " fmt) "\r\n", __func__,__LINE__,thrd_id(), ##__VA_ARGS__)
6867

6968
#endif
7069

71-
#define INFO_LOG(fmt, ...) enif_fprintf(stderr, "[@(tid:%llx)] " fmt "\r\n", thrd_id(), ##__VA_ARGS__)
70+
#define WARN(fmt, ...) enif_fprintf(stdout, B_MAGENTA("%s-%llx [%32s#%-5d@(tid:%llx)]") " " fmt "\r\n", enif_thread_name(enif_thread_self()),enif_thread_self(), __func__,__LINE__,thrd_id(), ##__VA_ARGS__)
71+
#define WARN_LOG(fmt, ...) enif_fprintf(stderr, B_YELLOW("[@(tid:%llx)] " fmt) "\r\n", thrd_id(), ##__VA_ARGS__)
7272
#define ERR_LOG(fmt, ...) enif_fprintf(stderr, B_RED("[@(tid:%llx)] " fmt) "\r\n", thrd_id(), ##__VA_ARGS__)

0 commit comments

Comments
 (0)