[EMAIL PROTECTED] wrote:
> On Fri, Jul 12, 2002 at 01:40:42AM +0200, Peter Hanappe wrote:
> 
>>[EMAIL PROTECTED] wrote:
>>
>>
>>>For example, in RTLinux, fifos shared
>>>between Linux (non-rt) processes and RT threads are asymmetric: the
>>>RT thread never blocks, the non-RT thread blocks. In many cases
>>>it is best to optimize the data operations and perform them under
>>>a spin_lock with interrupts disabled. In RTLinux pthread_spin_lock
>>>disables irqs and, in SMP also sets the lock
>>>     pthread_spin_lock(&myq.spin);
>>>     myq.tail->next = new;
>>>     new->next = 0;
>>>     myq.tail= next;
>>>     if(!myq.head)myq.head = new;
>>>     pthread_spin_unlock(&myq.spin);
>>>
>>How do you tell a blocking non-RT thread that new data is available?
>>
> 
> It's done automatically by a write: a write does sends a soft interrupt to 
> Linux and the interrupt handler does a standard wakeup on flagged fifos.

This wakeup doesn't involve a call to the scheduler?






Reply via email to