From e43e49d6f1742af261aa824bd588d0698b9e634f Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Thu, 29 Aug 2019 16:35:10 +0200 Subject: [PATCH] C: optimized dir opening --- src/obiavl.c | 13 ------------- src/obiavl.h | 2 -- src/obidms.c | 7 +++++++ src/utils.c | 7 ++++++- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/obiavl.c b/src/obiavl.c index 5a67552..4b9fe26 100755 --- a/src/obiavl.c +++ b/src/obiavl.c @@ -1964,9 +1964,6 @@ OBIDMS_avl_group_p obi_create_avl_group(OBIDMS_p dms, const char* avl_name) return NULL; } - // Store pointer on directory - avl_group->directory = opendir(avl_dir_name); - // Add in the list of open indexers obi_dms_list_indexer(dms, avl_group); @@ -2031,9 +2028,6 @@ OBIDMS_avl_group_p obi_open_avl_group(OBIDMS_p dms, const char* avl_name) avl_group->dms = dms; - // Store pointer on directory - avl_group->directory = opendir(avl_dir_name); - // Add in the list of open indexers obi_dms_list_indexer(dms, avl_group); @@ -2195,13 +2189,6 @@ int obi_close_avl_group(OBIDMS_avl_group_p avl_group) ret_val = -1; } - if (closedir(avl_group->directory) < 0) - { - obi_set_errno(OBI_AVL_ERROR); - obidebug(1, "\nError closing an AVL group directory"); - ret_val = -1; - } - free(avl_group); } diff --git a/src/obiavl.h b/src/obiavl.h index ea464e4..daa42fa 100755 --- a/src/obiavl.h +++ b/src/obiavl.h @@ -161,8 +161,6 @@ typedef struct OBIDMS_avl_group { */ bool writable; /**< Indicates whether the AVL group is read-only or not. */ - DIR* directory; /**< A directory entry usable to refer and scan the AVL group directory. - */ size_t counter; /**< Indicates by how many threads/programs (TODO) the AVL group is used. */ } OBIDMS_avl_group_t, *OBIDMS_avl_group_p; diff --git a/src/obidms.c b/src/obidms.c index c42e9ac..b7725d3 100755 --- a/src/obidms.c +++ b/src/obidms.c @@ -764,6 +764,13 @@ OBIDMS_p obi_create_dms(const char* dms_path) return NULL; } + if (closedir(dms_dir) < 0) + { + obi_set_errno(OBIDMS_UNKNOWN_ERROR); + obidebug(1, "\nError closing a directory"); + return NULL; + } + return dms; } diff --git a/src/utils.c b/src/utils.c index f115267..c7bc6ee 100755 --- a/src/utils.c +++ b/src/utils.c @@ -287,7 +287,12 @@ int count_dir(char* dir_path) count++; } - closedir(fd); + if (closedir(fd) < 0) + { + obi_set_errno(OBI_UTILS_ERROR); + obidebug(1, "\nError closing a directory"); + return -1; + } return count; }