Segfault during multiple calls to C embedded Ruby wrapped with dl library
Hi Ruby developpers,
I embedded a Ruby interpreter into a C application through a shared library. This application can call more than one time Ruby interpreter during its execution. In attached testcase that illustrates my issue, this is done through a for loop : first call works as expected but next calls returns [BUG] Segmentation fault and also that some constants are already defined.
What I suppose is that calling ruby_cleanup(0) and close shared library (dlclose) is not sufficient to properly clean application memory from Ruby execution stack.
Thanks for your consideration,
Updated by marchaland (David MARCHALAND) over 9 years ago
Well, I idenfitied that this bug is due to an unexpected behavior with dlclose().
My question is : why require 'fileutils' for instance do not allow dlclose() to close immediatly libruby.so and waits for end of program execution? Is there a way to unload libraries loaded by require?
Updated by naruse (Yui NARUSE) over 9 years ago
- Status changed from Open to Rejected
why require 'fileutils' for instance do not allow dlclose() to close immediatly libruby.so and waits for end of program execution?
That's because we don't need.
Is there a way to unload libraries loaded by require?
You can know loaded library files by get_loaded_features().