[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pthread created with SCHED_RR



Problem: a posix thread which is created by 

  pthread_attr_init(&tattr);
  pthread_attr_setinheritsched(&tattr, PTHREAD_EXPLICIT_SCHED);
  pthread_attr_setschedpolicy(&tattr, SCHED_RR);
  pthread_create(&th, &tattr, func, arg);

has a first timeslice of 2^32 ticks (changing a running thread to
SCHED_RR id ok). 

I use RTEMS-4.0.0. I am not sure if the problem exists in the current CVS
head revision. If it's not fixed, the patch at the end should do it.

Peter


--- pthreadcreate.c.orig	Wed Jul 28 14:45:58 1999
+++ pthreadcreate.c	Wed Jul 28 15:06:09 1999
@@ -199,6 +199,10 @@
   api->schedpolicy = schedpolicy;
   api->schedparam  = schedparam;
 
+  if ( schedpolicy == SCHED_RR ) {
+    the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;
+  }
+  
   /*
    *  This insures we evaluate the process-wide signals pending when we
    *  first run.