[Adium-devl] [ANN] msn-pecan 0.0.12 released
Evan Schoenberg
evan.s at dreskin.net
Fri May 2 21:41:09 UTC 2008
On May 2, 2008, at 5:06 PM, Augie Fackler wrote:
> On May 2, 2008, at 4:04 PM, Evan Schoenberg wrote:
>
>> The basic problem with MSN-pecan is that it does not use libpurple's
>> eventloop functions explicitly. It depends on the glib run loop (via
>> the IO functions) which is present in Pidgin but absent in Adium. The
>> best route to fix this would be to just use sources... Another choice
>> might be to run the glib run loop within Adium.
>
> Is there any technical *reason* it doesn't run inside libpurple's
> event loop?
It makes significant use of the glib IO channels API [1], which
provide high level access to files, pipes, and sockets. Unlike the
lower-level "source read" and "source write" socket watching done
elsewhere, which are done via the libpurple eventloop API (and which
therefore lets us send these things to the Cocoa run loop, while
Pidgin sends them to the glib run loop), the glib-IO-channels stuff
makes use of the glib run loop directly.
[1] http://library.gnome.org/devel/glib/stable/glib-IO-Channels.html
> I'd just as soon not run another runloop system inside
> Adium (remember the mess that joscar threads turned into)
I'm inclined against running another runloop if it can be avoided, but
unlike the Cocoa <--> Java connection, glib and Cocoa have run loops
which work in much the same fashion. It might be quite simple and
cheap to let glib run for this. We'd make a function call to iterate
the glib run loop one time each time our Cocoa run loop iterates. An
early version of the Adium-libpurple connection did this, actually,
but the problem at that time centered around threading issues which
are no longer around since we can run the non-blocking libpurple on
our main thread.
-Evan
More information about the devel
mailing list