swfc@mendelssohn.cs.columbia.edu (Shu-Wie F Chen) (03/02/90)
I am posting this for a friend. ------------------------------------------------------------------------------- assume you have 3 threads in c-threads. 2 of them do a call.. but the third is not ready to accept yet. So we want the 2 of them to wait. The easiest way to make them wait in c-threads is a conditional_wait(accept_ready) , now both of the calling threads are waiting on the condition when the 3rd thread is ready to accept. When the third thread signals conditional_signal (accept_ready) only one of the thread will be awakened, the c-threads manual states that 'at least one of them will be awakened' but does not specify which one... here is my question: If c1 was put on the condition_wait first before c2, then when c3 is ready to accept will c-threads' implicit queue take care of c1 getting the control of c3 first since it was put on the condition_wait first. if not, is there a way to implement this queue.. so that at least a fair amount of fairness can be obtained with a FIFO queue. The c-threads maunal does not specify if c-threads does an FIFO queue on a conditional_signal. ------------------------------------------------------------------------------- Thanks. *swfc ------------------------------------------------------------------------------- Shu-Wie F Chen Department of Computer Science swfc@cs.columbia.edu Columbia University