aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-02-11 18:08:25 -0700
committerJosh Rahm <joshuarahm@gmail.com>2024-02-11 18:08:25 -0700
commitd5d8526cfa80b17bd2562fda06614659fc42a20a (patch)
tree6e47e4f0f06d8d871bde21c9a7c6c312a5519c72
parent3cbc5823a9ab63337f144395eefea5ff18eee416 (diff)
downloadwetterhorn-d5d8526cfa80b17bd2562fda06614659fc42a20a.tar.gz
wetterhorn-d5d8526cfa80b17bd2562fda06614659fc42a20a.tar.bz2
wetterhorn-d5d8526cfa80b17bd2562fda06614659fc42a20a.zip
Little test to make sure unloading the plugin still works
-rw-r--r--harness/src/main.c9
-rw-r--r--harness/src/plugin.c1
2 files changed, 9 insertions, 1 deletions
diff --git a/harness/src/main.c b/harness/src/main.c
index 648473f..2e22b36 100644
--- a/harness/src/main.c
+++ b/harness/src/main.c
@@ -46,7 +46,14 @@ void run_plugin(int argc, char **argv, plugin_t *plugin) {
uint32_t sz;
- plugin_hot_reload(argc, argv, plugin->library_handle, plugin);
+ void* new_handle = dlopen(argv[2], RTLD_LAZY);
+ printf("old plugin init: %p\n", plugin->plugin_name);
+ if (new_handle) {
+ plugin_hot_reload(argc, argv, new_handle, plugin);
+ printf("new plugin init: %p\n", plugin->plugin_name);
+ } else {
+ fprintf(stderr, "Unable to open new library: %s\n", dlerror());
+ }
return;
}
diff --git a/harness/src/plugin.c b/harness/src/plugin.c
index 9b71c49..941cc01 100644
--- a/harness/src/plugin.c
+++ b/harness/src/plugin.c
@@ -67,6 +67,7 @@ int plugin_hot_reload(int argc, char **argv, dlhandle_t library,
shx(marshalled_state, sz);
if (library != plugin->library_handle) {
+ printf("Unloading old library handle.\n");
dlclose(plugin->library_handle);
}