Merge pull request #438 from fengzeroz/main

fix(driver): del unused tag cache
This commit is contained in:
fengzeroz
2022-04-19 11:10:08 +08:00
committed by GitHub
6 changed files with 1104 additions and 3 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
uses: DoozyX/clang-format-lint-action@v0.12
with:
source: 'src plugins include tests'
exclude: 'include/neuron/vector.h include/neuron/utils/uthash.h include/neuron/utils/utarray.h'
exclude: 'include/neuron/vector.h include/neuron/utils/uthash.h include/neuron/utils/utarray.h include/neuron/utils/utlist.h'
clangFormatVersion: 10
style: file
+1
View File
@@ -34,6 +34,7 @@ endif()
configure_file(extern/uthash/include/uthash.h ${CMAKE_SOURCE_DIR}/include/neuron/utils/uthash.h)
configure_file(extern/uthash/include/utarray.h ${CMAKE_SOURCE_DIR}/include/neuron/utils/utarray.h)
configure_file(extern/uthash/include/utlist.h ${CMAKE_SOURCE_DIR}/include/neuron/utils/utlist.h)
add_subdirectory(extern/vector)
set_property(TARGET vector-static PROPERTY POSITION_INDEPENDENT_CODE ON)
File diff suppressed because it is too large Load Diff
+2
View File
@@ -55,6 +55,8 @@ rules.append(mkdeb.FileMap("../include/neuron/utils/uthash.h",
"/usr/local/include/neuron/utils/"))
rules.append(mkdeb.FileMap("../include/neuron/utils/utarray.h",
"/usr/local/include/neuron/utils/"))
rules.append(mkdeb.FileMap("../include/neuron/utils/utlist.h",
"/usr/local/include/neuron/utils/"))
rules.append(mkdeb.FileMap("../include/neuron/adapter.h",
"/usr/local/include/neuron/"))
rules.append(mkdeb.FileMap("../include/neuron/adapter_msg.h",
+14 -2
View File
@@ -153,6 +153,18 @@ int neu_driver_cache_get(neu_driver_cache_t *cache, const char *key,
void neu_driver_cache_del(neu_driver_cache_t *cache, const char *key)
{
(void) cache;
(void) key;
struct elem *elem = NULL;
pthread_mutex_lock(&cache->mtx);
HASH_FIND_STR(cache->table, key, elem);
if (elem != NULL) {
HASH_DEL(cache->table, elem);
if (elem->n_byte != 0) {
free(elem->bytes);
}
free(elem);
}
pthread_mutex_unlock(&cache->mtx);
}
+13
View File
@@ -270,6 +270,13 @@ void neu_adapter_driver_process_msg(neu_adapter_driver_t *driver,
if (sg != NULL) {
driver->adapter.plugin_info.module->intf_funs->driver.del_group(
driver->adapter.plugin_info.plugin, &sg->grp);
for (neu_datatag_t **tag =
(neu_datatag_t **) utarray_front(sg->grp.tags);
tag != NULL;
tag = (neu_datatag_t **) utarray_next(sg->grp.tags, tag)) {
neu_driver_cache_del(driver->cache, (*tag)->name);
}
HASH_DEL(driver->grps, sg);
neu_adapter_del_timer((neu_adapter_t *) driver, sg->report);
neu_event_del_timer(driver->driver_events, sg->read);
@@ -326,6 +333,12 @@ static int read_callback(void *usr_data)
sg->driver->adapter.plugin_info.module->intf_funs->driver.del_group(
sg->driver->adapter.plugin_info.plugin, &sg->grp);
for (neu_datatag_t **tag =
(neu_datatag_t **) utarray_front(sg->grp.tags);
tag != NULL;
tag = (neu_datatag_t **) utarray_next(sg->grp.tags, tag)) {
neu_driver_cache_del(sg->driver->cache, (*tag)->name);
}
neu_plugin_group_t grp = { .group_name = sg->grp.group_name };
load_tags(sg->driver, new_config, &grp.tags);