Re: uart vs sio differences ?

From: Marcel Moolenaar <xcllnt_at_mac.com>
Date: Tue, 09 Dec 2008 12:44:29 -0800
On Dec 9, 2008, at 12:33 PM, Scott Long wrote:

>
> Yup, my mistake.  However, I think that the semaphore spinwait in  
> uart_sched_softih() is the source of the problems here.

It's not a semaphore spinwait. It's just an atomic operation:
1. read old,
2. calculate new from old,
3. atomic_cmpset(old, new)
4. goto 1 if 3 fails.

The loop iterates only if ttypend got changed between 1 and 3.
There's no spinwaiting and no semaphore-like behaviour.

FYI,

-- 
Marcel Moolenaar
xcllnt_at_mac.com
Received on Tue Dec 09 2008 - 19:44:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:38 UTC