C: optimized dir opening

This commit is contained in:
Celine Mercier
2019-08-29 16:35:10 +02:00
parent 187053026f
commit e43e49d6f1
4 changed files with 13 additions and 16 deletions

View File

@ -1964,9 +1964,6 @@ OBIDMS_avl_group_p obi_create_avl_group(OBIDMS_p dms, const char* avl_name)
return NULL; return NULL;
} }
// Store pointer on directory
avl_group->directory = opendir(avl_dir_name);
// Add in the list of open indexers // Add in the list of open indexers
obi_dms_list_indexer(dms, avl_group); 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; avl_group->dms = dms;
// Store pointer on directory
avl_group->directory = opendir(avl_dir_name);
// Add in the list of open indexers // Add in the list of open indexers
obi_dms_list_indexer(dms, avl_group); 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; 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); free(avl_group);
} }

View File

@ -161,8 +161,6 @@ typedef struct OBIDMS_avl_group {
*/ */
bool writable; /**< Indicates whether the AVL group is read-only or not. 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. size_t counter; /**< Indicates by how many threads/programs (TODO) the AVL group is used.
*/ */
} OBIDMS_avl_group_t, *OBIDMS_avl_group_p; } OBIDMS_avl_group_t, *OBIDMS_avl_group_p;

View File

@ -764,6 +764,13 @@ OBIDMS_p obi_create_dms(const char* dms_path)
return NULL; return NULL;
} }
if (closedir(dms_dir) < 0)
{
obi_set_errno(OBIDMS_UNKNOWN_ERROR);
obidebug(1, "\nError closing a directory");
return NULL;
}
return dms; return dms;
} }

View File

@ -287,7 +287,12 @@ int count_dir(char* dir_path)
count++; count++;
} }
closedir(fd); if (closedir(fd) < 0)
{
obi_set_errno(OBI_UTILS_ERROR);
obidebug(1, "\nError closing a directory");
return -1;
}
return count; return count;
} }