From: Vitaly V. B. <vit...@us...> - 2004-10-19 19:28:19
|
On Tue, 19 Oct 2004 11:11:23 +0200 Dennis Smit <sy...@yo...> wrote: > On Tue, 2004-10-19 at 03:00 +0300, Vitaly V. Bursov wrote: > > On Tue, 19 Oct 2004 00:33:14 +0200 > > Dennis Smit <sy...@yo...> wrote: > > > > > How are the other hackers doing ? :)) > > Hunting those weird bugs... and my hangs. > > > > Dennis, shouldn't visual_bin_destroy() free only managed plugins, should it? > > > > visual_plugin_unload() dlclose()'s library even if it is used... > > > > That's all for today :) > > I'm not sure about the bin, I really need to redo it from scratch.... I mean int visual_bin_destroy (VisBin *bin) { visual_log_return_val_if_fail (bin != NULL, -1); if ((bin->actor != NULL) /*-->*/ && (bin->managed) /*<--*/ ) visual_actor_destroy (bin->actor); ... > About visual_plugin_unload, would it be better to set an error, and have > a way to force it ? No, of course not! if you unload library that is used everything will crash. Well, here's an example that will not work. plug1 = visual_plugin_load(ref); plug2 = visual_plugin_load(ref); // realize, etc. visual_plugin_unload(plug1); visual_plugin_unload(plug2); // <-- Hard Crash here. because it dlclose()'s library. :( I do not see a quick&nice way to fix this but write a dlopen() manager with static struct array with handles and refcounters. This thing should be fixed. > What others bugs do you have? I might be able to help you > fixing those. OK, just as I find some. :) -- Vitaly GPG Key ID: F95A23B9 |