On Sun, 18 Oct 2009 02:11:22 -0400 Lee Revell <rlrevell@xxxxxxxxxxx> wrote: > On Fri, Oct 16, 2009 at 12:31 PM, Nedko Arnaudov <nedko@xxxxxxxxxxxxx> wrote: > >> Another question that comes to mind is: was Ardour running with a realtime > >> priority too? Higher or lower prio than jack's? > > > > Ardour process has realtime thread(s) started by libjack. > > AFAICT, fork() is inherently unusable from any thread of a process > with realtime threads. It locks the page tables and the process > structure of the parent among other things. > > Anyone know if posix_spawn() is supported by any major distro's glibc? > Apparently it was developed to solve this exact problem. > > http://www.opengroup.org/onlinepubs/009695399/functions/posix_spawn.html > Just tried it on a RHEL5.4 and Fedora 11 system. The pthread_spawn(3P) function is implemented using vfork(2) under the covers. Makes sense, since the stated intent is to work without VM. Still, anyone wanting to create processes/threads in a realtime environment needs to do that stuff up front, since there's a ton of work required to make a scheduleable entity. Whether you're just creating a pthread or you're generating a full-up process, memory will have to be allocated and locks taken. Not sure I'd depend on *anything* to do the right thing for me... Clark
Attachment:
signature.asc
Description: PGP signature