[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