aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}