You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Amongst plugin projects, the consensus seems to be that unloading and reloading is a hard problem.
The basic issues are:
Anything that is loaded may be unloaded at any time. Particularly in the case of multithreaded apps, this is difficult. Especially in library code which is not Rust, and you need to deal with errors whether catastrophic (oops the library went away) or minor (oops - exception!) in library code which may not be Rust.
On unloading you need to be sure that all memory used by the plugin is released before unloading: normally you would expect the library to outlive any data managed by the plugin.
Reloading or loading later versions has similar problems. I guess you might be able to arrange a system where data was not owned by the plugin, but the plugin manager, but in this case you'd need to know that any reloaded version had the same ABI for data structures. Or perhaps only support loading later versions upon the very first load, before the library has been used, rather than during use.
I know that one of the plugin projects had a long discussion about the issues with unloading and reloading, but I don't think it's in the links above. My memory is that it was about loading C or C++ libraries, and that dlopen was basically a use-once per file function, and that you could never guarantee that dlclose would evict a previously loaded library. I don't think there was a satisfactory resolution, but tbf this is a pretty dim memory. Maybe you can find the discussion.
Again - I'm going to immediately close this issue since it's for info, rather than pointing out any actual problems.
The text was updated successfully, but these errors were encountered:
Amongst plugin projects, the consensus seems to be that unloading and reloading is a hard problem.
The basic issues are:
These projects have something to say about it:
I know that one of the plugin projects had a long discussion about the issues with unloading and reloading, but I don't think it's in the links above. My memory is that it was about loading C or C++ libraries, and that dlopen was basically a use-once per file function, and that you could never guarantee that dlclose would evict a previously loaded library. I don't think there was a satisfactory resolution, but tbf this is a pretty dim memory. Maybe you can find the discussion.
Again - I'm going to immediately close this issue since it's for info, rather than pointing out any actual problems.
The text was updated successfully, but these errors were encountered: