site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Task special ports are inherited across fork(2). -Ed _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com On Jan 15, 2009, at 2:40 PM, Damien Sorresso wrote: 0. In parent, create a new port (Port A) to which you hold a receive right. 1. Insert a send right into that port. 2. Cache your current task bootstrap port. 3. Set the task bootstrap port to Port A. 4. fork(2) / exec(2) your child. 5. In the parent, set your task bootstrap port back to the cached port. 6. Have the child send a message to the parent (via its bootstrap port) requesting all the information it needs, perhaps including the parent's bootstrap port. 7. Optionally, have the child reset its bootstrap port to the parent's bootstrap port. #7 should not be optional. Frameworks and other system services may depend on the bootstrap port being what it claims. It should mandatorily be set back, ASAP. smime.p7s