[alsa-devel] External PCM hook SO is dlclosed after calling install, making it hard to have hooks in it
Paul Fertser
fercerpav at gmail.com
Tue Jun 30 08:38:04 CEST 2009
On Tue, Jun 30, 2009 at 08:33:15AM +0200, Takashi Iwai wrote:
> > It looks like we're talking about different things. You seem to be
> > talking about external PCM plugins, i'm talking about external functions
> > for the "hook" PCM plugin. The code i question is in pcm/pcm_hooks.c
> > in function snd_pcm_hook_add_conf:
> >
> > if (err >= 0) {
> > if (args && snd_config_get_string(args, &str) >= 0) {
> > err = snd_config_search_definition(root,
> > "hook_args", str, &args);
> > if (err < 0)
> > SNDERR("unknown hook_args %s", str);
> > else
> > err = install_func(pcm, args);
> > snd_config_delete(args);
> > } else
> > err = install_func(pcm, args);
> > snd_dlclose(h);
> > }
>
> Ah, I understand now. Yes, this looks like a bug.
> Meanwhile, it makes another bug if we just remove it. There would be
> no dlclose(), then. It'd need resource tracking.
Exactly the reason i haven't tried to make a proper patch ;)
> A lack of dlclose is no serious bug, though.
I hope you know better than me ;)
> So... just removing snd_dlclose() there fixes your problem?
> If yes, I'll commit the fix.
TBH, i've not tried but i'm pretty sure it will fix the problem. I
tried with dlopen workaround (to increase the refcounter) in install
function and i tried with LD_PRELOAD'ing the library before starting
an alsa app; both workarounds worked.
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav at gmail.com
More information about the Alsa-devel
mailing list