Re: sched_yield() on 2.6.25
From: Helge Hafting
Date: Mon Jun 09 2008 - 05:04:27 EST
Jakub Jozwicki wrote:
From the man sched_yield:
A process can relinquish the processor voluntarily without blocking by
calling sched_yield(). The process will then be moved to the end of the
queue for its static priority and a new process gets to run.
and also IEEE/Open Group:
http://www.opengroup.org/onlinepubs/000095399/functions/sched_yield.html
pthread_mutex_lock(&mutex);
th = pthread_self();
if (pthread_equal(th,last_th)) {
pthread_mutex_unlock(&mutex);
sched_yield();
continue;
Here with SCHED_OTHER sched_yield for the first 100-200 times does nothing.
Should the man be updated?
Having the man page mention the fact that that sched_yield() probably
won't do "what you intend" in the non-realtime cases is probably a
good idea;
that way we get fewer application programmers who mistakenly think
that sched_yield can be used for their purposes. And then we'll have
less broken apps.
A pointer to info about what they might want to use instead is even better.
Helge Hafting
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/