|
RE: RE: posix_spawn() blocks indefinetely
|
02/22/2013 5:28 PM
post99484
|
RE: RE: posix_spawn() blocks indefinetely
The process container is created at the specified priority and, as you might expect, the loader code runs within that
process container (with those privileges etc.)
I'd have to check to see what other operating systems do, but that's what Neutrino does ;-)
One standard trick that we use to arrange for a spawned process to be modified before it starts running, is to start it
held. In your example, you'd spawn the process at your prio but held; then you'd lower its prio and release it.
________________________________________
From: Eric Shufro [community-noreply@qnx.com]
Sent: February-22-13 9:16 AM
To: ostech-core_os
Subject: Re: RE: posix_spawn() blocks indefinetely
Neil,
Thank you for the reply. I find it interesting that the loading of the process image would occur at a lower priority
since it seems as though this activity would occur from within the context of the caller. Of course, creating the
'container' and loading the process are still different than making the process/main thread ready and actually selecting
it to run. My anticipation was that the process would be loaded, marked ready and simply not scheduled since its
priority is less than a higher priority thread that is also ready. That's why I had expected the call to return with
the PID without blocking.
Do most modern operating systems *wait* for the process to load at the configured or inherited priority or is this
specific to the QNX Neutrino implementation?
Thanks,
--Eric
_______________________________________________
OSTech
http://community.qnx.com/sf/go/post99458
To cancel your subscription to this discussion, please e-mail ostech-core_os-unsubscribe@community.qnx.com
|
|
|