Messages in this thread | | | From | "Nikita V. Youshchenko" <> | Subject | Suspend one thread and resume another in one system call ? | Date | Wed, 26 Aug 2009 20:02:05 +0400 |
| |
Hello.
Consider a situation when: - there is a set of threads, - only one of those should be allowed to work at a time, - there are "switch moments" when one thread should suspend, and other (known) resume.
"Classic" solutions like have each thread sleeping on a semaphore, and making switch operation "sem_post(next_sem); sem_wait(my_sem)" cause two syscalls per switch.
Could anyone suggest a solution with only one kernel entry per switch - running thread enters kernel and is de-scheduled, new thread resumes and leaves kernel?
Nikita
P.S. Since there are other threads in the same application working in the parallel with the mentioned "exclusive set", user-space solutions like libpth are not interesting.
| |