Re: Module development advice
Marcus Rueckert <[email protected]> Sat, 10 Nov 2007 22:39:03 +0100
| Newsgroups | gmane.network.irc.irssi.devel |
|---|---|
| Message-ID | <[email protected]> |
On 2007-11-10 13:26:08 -0800, Max Englander wrote:
> I have another issue related to my module development.
>
> My module has two components, a client and a service. The client sends
> commands and requests to AMIP (Winamp/iTunes/fb2k plugin), and certain
> requests receive responses. The service listens for unsolicited
> messages from AMIP, such as "play", "pause", etc..
>
> Because I cannot run the service within the Irssi thread (would block
> normal Irssi usage), I have to decouple the service from Irssi
> somehow. I have begun development using libpthread, but this creates a
> problem. Irssi is not linked, nor provides the option to link, with
> libpthread. When Irssi calls dlclose() on my module, it segfaults.
> This occurs because of (perhaps) a bug in dlclose() which creates an
> error when a non-pthread-linked parent unloads a pthread-linked
> module. I was able to create a fix for this by linking Irssi with
> libpthread.
>
> I have a few questions about this fix, and other possible non-threaded solutions.
> * Will linking Irssi with libpthread create other issues in Irssi?
> * Could Irssi distribute with a --with-pthreads option to allow for pthreaded modules?
> * If I loaded my module from perl (build an Xs module), would this
> circumvent the dlclose() problem or simply move the point of fault to
> a different location (seeing as the perl interpreter is loaded in
> Irssi as a module, if I'm not mistaken) ?
> * Would using perl threads allow me to safely and efficiently decouple
> the service from Irssi?
>
> Any other ideas on how to efficiently decouple my service (fork, exec*
> + FIFOs/sockets, etc.) would also be greatly appreciated.
http://www.irssi.org/scripts/html/leodict.pl.html
darix
--
openSUSE - SUSE Linux is my linux
openSUSE is good for you
www.opensuse.org