|
@@ -49,73 +49,73 @@ LSUP_init (void)
|
|
|
|
|
|
if (LSUP_env_is_init) return rc;
|
|
|
|
|
|
- if (LSUP_default_env == NULL) {
|
|
|
#ifdef DEBUG
|
|
|
-
|
|
|
- int loglevel = LOG_TRACE;
|
|
|
+
|
|
|
+ int loglevel = LOG_TRACE;
|
|
|
#else
|
|
|
- char *_loglevel = getenv ("LSUP_LOGLEVEL");
|
|
|
- int loglevel = (_loglevel == NULL) ? LOG_INFO : atoi (_loglevel);
|
|
|
+ char *_loglevel = getenv ("LSUP_LOGLEVEL");
|
|
|
+ int loglevel = (_loglevel == NULL) ? LOG_INFO : atoi (_loglevel);
|
|
|
#endif
|
|
|
- log_set_level (loglevel);
|
|
|
-
|
|
|
-
|
|
|
- MALLOC_GUARD (LSUP_uri_ptn, LSUP_MEM_ERR);
|
|
|
-
|
|
|
- int regex_rc = regcomp (LSUP_uri_ptn, LSUP_URI_REGEX_STR, REG_EXTENDED);
|
|
|
- if (regex_rc != 0) {
|
|
|
- char err_msg[128];
|
|
|
- size_t err_msg_sz = regerror (regex_rc, LSUP_uri_ptn, err_msg, 128);
|
|
|
- log_error (
|
|
|
- "Error compiling regular expression pattern: %s.",
|
|
|
- err_msg);
|
|
|
- return LSUP_ERROR;
|
|
|
- }
|
|
|
- */
|
|
|
- if (regcomp (LSUP_uri_ptn, LSUP_URI_REGEX_STR, REG_EXTENDED) != 0) {
|
|
|
- log_error ("Error compiling regular expression pattern.");
|
|
|
- return LSUP_ERROR;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- LSUP_default_datatype = LSUP_iriref_new (DEFAULT_DTYPE, NULL);
|
|
|
-
|
|
|
-
|
|
|
- char *mdb_path = getenv ("LSUP_MDB_STORE_PATH");
|
|
|
- if (!mdb_path) {
|
|
|
- mdb_path = DEFAULT_ENV_PATH;
|
|
|
- log_warn (
|
|
|
- "`LSUP_MDB_STORE_PATH' environment variable is not "
|
|
|
- "set. The default location %s will be used as the graph "
|
|
|
- "store.", mdb_path
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- LSUP_default_env = LSUP_env_new (
|
|
|
- DEFAULT_CTX_LABEL, mdb_path, NULL);
|
|
|
-
|
|
|
-
|
|
|
- if (LSUP_mdbstore_setup (LSUP_MDB_RAMDISK_PATH, true) != LSUP_OK)
|
|
|
- log_error ("Error setting up RAM disk store.");
|
|
|
-
|
|
|
- LSUP_default_env->mdb_store_ramdisk = LSUP_mdbstore_new (
|
|
|
- LSUP_MDB_RAMDISK_PATH, LSUP_default_env->default_ctx);
|
|
|
- if (UNLIKELY (!LSUP_default_env->mdb_store_ramdisk))
|
|
|
- log_error ("Error setting up RAM disk store.");
|
|
|
-
|
|
|
- log_info ("Initialized RAM disk back end at %s.", LSUP_MDB_RAMDISK_PATH);
|
|
|
-
|
|
|
- if (!LSUP_default_env) rc = LSUP_DB_ERR;
|
|
|
-
|
|
|
-
|
|
|
- atexit (LSUP_done);
|
|
|
-
|
|
|
- rc = LSUP_OK;
|
|
|
- LSUP_env_is_init = true;
|
|
|
+ log_set_level (loglevel);
|
|
|
+
|
|
|
+
|
|
|
+ MALLOC_GUARD (LSUP_uri_ptn, LSUP_MEM_ERR);
|
|
|
+
|
|
|
+ int regex_rc = regcomp (LSUP_uri_ptn, LSUP_URI_REGEX_STR, REG_EXTENDED);
|
|
|
+ if (regex_rc != 0) {
|
|
|
+ char err_msg[128];
|
|
|
+ size_t err_msg_sz = regerror (regex_rc, LSUP_uri_ptn, err_msg, 128);
|
|
|
+ log_error (
|
|
|
+ "Error compiling regular expression pattern: %s.",
|
|
|
+ err_msg);
|
|
|
+ return LSUP_ERROR;
|
|
|
}
|
|
|
+ */
|
|
|
+ if (regcomp (LSUP_uri_ptn, LSUP_URI_REGEX_STR, REG_EXTENDED) != 0) {
|
|
|
+ log_error ("Error compiling regular expression pattern.");
|
|
|
+ return LSUP_ERROR;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ LSUP_default_datatype = LSUP_iriref_new (DEFAULT_DTYPE, NULL);
|
|
|
+
|
|
|
+
|
|
|
+ char *mdb_path = getenv ("LSUP_MDB_STORE_PATH");
|
|
|
+ if (!mdb_path) {
|
|
|
+ mdb_path = DEFAULT_ENV_PATH;
|
|
|
+ log_warn (
|
|
|
+ "`LSUP_MDB_STORE_PATH' environment variable is not "
|
|
|
+ "set. The default location %s will be used as the graph "
|
|
|
+ "store.", mdb_path
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ LSUP_default_env = LSUP_env_new (
|
|
|
+ DEFAULT_CTX_LABEL, mdb_path, NULL);
|
|
|
+ if (UNLIKELY (!LSUP_default_env)) return LSUP_ERROR;
|
|
|
|
|
|
- return rc;
|
|
|
+
|
|
|
+ if (LSUP_mdbstore_setup (LSUP_MDB_RAMDISK_PATH, true) != LSUP_OK) {
|
|
|
+ log_error ("Error setting up RAM disk store files.");
|
|
|
+ return LSUP_DB_ERR;
|
|
|
+ }
|
|
|
+
|
|
|
+ LSUP_default_env->mdb_store_ramdisk = LSUP_mdbstore_new (
|
|
|
+ LSUP_MDB_RAMDISK_PATH, LSUP_default_env->default_ctx);
|
|
|
+ if (UNLIKELY (!LSUP_default_env->mdb_store_ramdisk)) {
|
|
|
+ log_error ("Error setting up RAM disk store.");
|
|
|
+ return LSUP_DB_ERR;
|
|
|
+ }
|
|
|
+
|
|
|
+ log_info ("Initialized RAM disk back end at %s.", LSUP_MDB_RAMDISK_PATH);
|
|
|
+
|
|
|
+
|
|
|
+ atexit (LSUP_done);
|
|
|
+
|
|
|
+ LSUP_env_is_init = true;
|
|
|
+
|
|
|
+ return LSUP_OK;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -127,14 +127,6 @@ LSUP_env_free (LSUP_Env *env)
|
|
|
LSUP_buffer_free (env->default_ctx);
|
|
|
LSUP_nsmap_free (env->nsm);
|
|
|
|
|
|
-
|
|
|
- struct term_cache_t *entry, *tmp;
|
|
|
- HASH_ITER (hh, LSUP_term_cache, entry, tmp) {
|
|
|
- HASH_DEL (LSUP_term_cache, entry);
|
|
|
- LSUP_term_free (entry->term);
|
|
|
- free (entry);
|
|
|
- }
|
|
|
-
|
|
|
free (env);
|
|
|
}
|
|
|
|
|
@@ -142,9 +134,20 @@ LSUP_env_free (LSUP_Env *env)
|
|
|
void
|
|
|
LSUP_done (void)
|
|
|
{
|
|
|
+ if (!LSUP_env_is_init) return;
|
|
|
+
|
|
|
LSUP_env_free (LSUP_default_env);
|
|
|
regfree (LSUP_uri_ptn);
|
|
|
free (LSUP_uri_ptn);
|
|
|
|
|
|
+
|
|
|
+ struct term_cache_t *entry, *tmp;
|
|
|
+ HASH_ITER (hh, LSUP_term_cache, entry, tmp) {
|
|
|
+ HASH_DEL (LSUP_term_cache, entry);
|
|
|
+ LSUP_term_free (entry->term);
|
|
|
+ free (entry);
|
|
|
+ }
|
|
|
+ LSUP_default_datatype = NULL;
|
|
|
+
|
|
|
LSUP_env_is_init = false;
|
|
|
}
|