Mach ports are owned at the task (process) level, not the thread level. So all threads in a process see the same Mach port namespace. But there is NO way to force Mach port inheritance across fork(). You can perform a little dance that gets the parent and child to explicitly share some ports after the fork() call (set a special port in the parent, fork(), and then have the child use that special port to make requests of the parent to share certain ports). But there is nothing that will share them implicitly. And most frameworks have no mechanism to re-hook the new port names in the child to the frameworks internal storage of the portname in the parent. --Jim On Wednesday, December 18, 2002, at 12:36 PM, Nathan T. Hjelm wrote: Is there any way to force their inheritance when using fork? How about threads, under darwin, do they share ports? On Wed, 18 Dec 2002, Ed Wynne wrote: On Wednesday, December 18, 2002, at 11:58 AM, Nathan T. Hjelm wrote: I know that standard file descriptors get copied during a fork call, but what about MACH ports? Does the child process inherit them as well? Only the special ports... bootstrap, exception, etc. The normal complement of mach ports that get created over the life of a process are not inherited. -Ed _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored. _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored. _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.