site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com On Apr 25, 2006, at 8:10 AM, Dave Zarzycki wrote: No, and that is a feature in fact. :-) launchd is a completely different bootstrapping philosophy. "Never trust a computer you can't throw out a window." - Steve Wozniak _______________________________________________ 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... Under launchd, dependancies are expected to be expressed via APIs, and those APIs may (or most likely) will use IPC to determine when goals have been satisfied. The nice thing about APIs is that it encourages daemon writers to register callbacks for when their requirements are satisfied, which could be 30 seconds from now, or 30 days from now, it doesn't matter. But at least the daemon can make forward progress with other goals in the interim. In your case, it sounds like you need to use the available kext management APIs to determine when your driver has been loaded. I hope all this makes sense. I have a similar situation. My kext gets cached, but internally waits for certain services to become available, then it publishes itself. launchd starts my daemon early, usually with pid 31 or 32, and during its init it registers for service notifications for the kext, and once it receives the callback (or upon first enum), it connects. I was getting panics often, random but on/near this time, so as a temp workaroundl I added a sleep timeout in the daemon of 10 seconds before it added its notifier. Still no idea why. Loading/ unloading the kext later works perfectly, and so does starting the daemon later, but not both of them asap. Strange. -- Shaun Wexler MacFOH http://www.macfoh.com This email sent to site_archiver@lists.apple.com