Messages in this thread |  | | From | Mohit Aron <> | Date | Sat, 3 Feb 2001 14:53:26 -0800 (PST) |
| |
Hi, the system call sched_yield() doesn't seem to work on Linux 2.2. Does anyone know of a kernel patch that fixes this ?
Attached below is a small program that uses pthreads and demonstrates that sched_yield() doesn't work. Basically, the program creates two threads that alternatively try to yield CPU to each other.
- Mohit
#include <stdio.h> #include <sched.h> #include <pthread.h>
static pthread_t thread1, thread2;
static void *thread1_func(void *arg) { int i;
for (i=0; i < 5 ;i++) { printf("Thread1\n"); if (sched_yield()) printf("error in yielding\n"); } }
static void *thread2_func(void *arg) { int i;
for (i=0; i < 5 ;i++) { printf("Thread2\n"); if (sched_yield()) printf("error in yielding\n"); } }
int main(int argc, char **argv) { pthread_create(&thread1, NULL, thread1_func, NULL); pthread_create(&thread2, NULL, thread2_func, NULL);
sleep(10);
return 0; }
|  |