Actually after some thought, I think a
better question would be, does anyone know of a carbon or generic call that I
could use to tell if the ‘Network’ is up before trying to load my
NKE from my app?
Thanks
Carl
-----Original Message-----
From: darwin-kernel-bounces+csmith=email@hidden
[mailto:darwin-kernel-bounces+csmith=email@hidden] On Behalf Of Quinn
Sent: Monday, November 28, 2005 5:59 AM
To: email@hidden
Subject: Re: How to tell when all
kexts are loaded
At 18:30
-0500 25/11/05, Carl Smith
wrote:
I have a carbon app that is
dependent on an NKE that I install at startup time. I had all this working fine
for 10.3 but now that I am getting the bugs out for 10.4 I find that 10.4 takes
a longer time to load all the kexts and what every else the OS needs to get
started.
Obviously you need to fix the root cause of this
problem (that is, have your client apps wait for your KEXT to load).
However, you probably also want to investigate why your KEXT is taking longer
to load. My guess is that you're loading your KEXT from a startup
item. If so, you should know that, starting with 10.4, all startup items
are assumed to have a dependency on "Network". Thus, your
startup item won't run until the network is up and running. This can take
a while, especially when using DHCP.
The reason for this lies in backward
compatibility. In 10.4 we changed how the system boots, such much of the
boot is managed by launchd on an "on demand" basis. A variety
of third party startup items depended on "Network" implicitly: that
is, they depend on service X, which in turn depends on
"Network". This worked fine prior to 10.4, but in 10.4 service
X no longer depends on "Network", so the third party startup item
would run before the network was up. This is a bug in the third party
startup item (if you depend on the network, you should declare that), but it
was a common problem so we decided on a general case workaround.
If you want to avoid this implicit dependency, load
via launchd.
--
Quinn "The
Eskimo!"
<http://www.apple.com/developer/>
Apple Developer Technical Support * Networking, Communications, Hardware