2009/5/11 Dragan Milić <mi...@mac.com>: > On uto 12. 05. 2009., at 01:55, Michael Ash wrote: > >> 2009/5/11 Gwynne Raskind <gwy...@darkrainfall.org>: >>> >>> This is workable, but make sure you use a fork()/exec() pair to >>> re-execute >>> yourself in that case, and use argc/argv in your main() to determine >>> which >>> mode to run in. Don't just use fork() by itself - there are severe limits >>> to >>> what you can do in an only-fork()ed process. What those limits are isn't >>> entirely clear to me; perhaps someone else could elaborate on that? >> >> The main problem is that fork() kills all other threads in the child >> process, leaving you with only the thread that called fork() active. > > And that effectively invalidates fork()/exec() approach for me, since I > cannot afford all other threads being killed.
I think you've misunderstood. There is no problem with the fork/exec approach here. The problem is with the approach of forking and *not* calling exec, but running code directly in the child process after the fork. This technique is rife with difficulty which is why virtually nobody ever uses it. However, if you fork and then immediately exec, you're fine, and apps do this all the time. 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 arch...@mail-archive.com