On 24 Jun 2010, at 15:05, Graeme Geldenhuys wrote:
Also does multiple schedulers apply to other non-Linux platforms too? eg: OSX, FreeBSD, NetBSD, Haiku, etc. Because currently any unix-type platform doesn't have Thread Priority support in FPC.
The POSIX pthread_setschedparam() api is not really appropriate in this case. It's mainly geared at real-time threads, which is why POSIX only define the behaviour of SCHED_RR and SCHED_FIFO parameters (both of which are real-time schedulers in this context).
For SCHED_OTHER, the OS can do whatever it wants (including treating it as another real-time scheduler class, or just as an alias for SCHED_RR or SCHED_FIFO), and there is no guarantee that the sched_priority field of the schedparam srtucture is used in that case (the parameters are completely implementation-defined). Both http://opengroup.org/onlinepubs/007908775/xsh/pthread_setschedparam.html and the Linux man page for pthread_setschedparam() mention that.
I'm not aware of any portable Unix API to set the priority of threads scheduled by the default scheduler (unless that happens to be a SCHED_FIFO or SCHED_RR real-time scheduler, which will only be the case on real-time systems). I'm not even sure about what the low level APIs are on particular Unix platforms such as Linux and Mac OS X.
Jonas _______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
