On Mon, Aug 4, 2008 at 12:22 AM, Andrew Farmer <[EMAIL PROTECTED]> wrote:
> On 03 Aug 08, at 19:53, Michael Ash wrote:
>>
>> On Sun, Aug 3, 2008 at 5:12 PM, Andrew Farmer <[EMAIL PROTECTED]> wrote:
>>>
>>> On 03 Aug 08, at 14:00, Steve Cronin wrote:
>>>>
>>>> I am trying to simply restart my app.  To my dismay, I cannot find a way
>>>> to do this in Cocoa.
>>>> Please enlighten me if I have failed to understand something!!
>>>>
>>>> After perusing the archives, what makes the most sense to me is to
>>>> launch
>>>> a detached shell that executes a simple AppleScript.
>>>> The script has a delay of 2 seconds and then simply does a 'launch'.
>>>
>>> You're overcomplicating things.
>>>
>>> int main(int argc, char **argv) {
>>>      if(fork() || fork()) exit(0);
>>>      sleep(2);
>>>      execl(argv[1], argv[1], NULL);
>>>      exit(1);
>>> }
>>>
>>> Launch this with a single argument - the path to your application's
>>> executable. It'll background itself, sleep two seconds, and exec your
>>> application.
>>
>> This is, IMO, a rather bad approach. If your app takes longer than two
>> seconds to quit, it will fail. It's generally a bad idea to use exec()
>> on GUI apps. And you end up creating three subprocesses for no
>> particularly good reason.
>
> The double-fork is to fully detach the child process from the parent - note
> that all of the parent processes immediately die, because fork() returns
> nonzero.

I understand that, but I don't see the point of it. This sort of
detachment is used to prevent zombie processes. You have no danger of
zombie processes, because you intend to outlive your parent, and even
if you don't, your parent will be quick to die in any case. There is
no other utility besides that.

Mike
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to