[Adium-devl] rev 19069 - in branches/adium-1.0/Plugins/Gaim Service: . Libgaim.framework/Versions/A/Headers
Graham Booker
adium at cod3r.com
Sun Feb 25 19:42:44 UTC 2007
On Feb 25, 2007, at 12:00 PM, Andreas Monitzer wrote:
> On Feb 25, 2007, at 15:35, Graham Booker wrote:
>
>> There are 3 ways to fix this.
>> 1) Use a double fork method, where the child forks again and then
>> immediately exist. The parent can block on a wait here because all
>> the first child does before exit is a fork. This means the child
>> of the child has its parent exit, and so it then becomes the child
>> of init (or I expect launchd in OS X), which calls wait
>> periodically. This method is the care-free method.
>> 2) The parent has a signal handler which detects a child's exit and
>> handles it appropriately. (This is the zombie killer).
>> 3) The parent calls wait when the child exist.
>
> Did you consider replacing the fork() by spawing a new thread? That
> would be much cheaper on Mac OS X, and hassle-free.
>
Did that with the normal DNS lookups, but the code in question here
is within libgaim. They don't want threading because they don't want
libgaim dependent on libpthread or anything like that.
> andy
- Graham
More information about the devel
mailing list