Re: atomic_ question

2001-02-08 Thread Alfred Perlstein
* Bernd Walter <[EMAIL PROTECTED]> [010208 09:21] wrote: > Are atomic_* implementations allowed to spin/sleep? > The question is because some platforms don't have atomic operations > for adding and so on (e.g. sparcv8). Actually, you can use atomic_* on sparc, but you're limited to 24 bits. > Th

Re: atomic_ question

2001-02-08 Thread Bernd Walter
On Fri, Feb 09, 2001 at 11:00:04AM +1100, Peter Jeremy wrote: > On 2001-Feb-08 22:21:32 +0100, Bernd Walter <[EMAIL PROTECTED]> wrote: > >On sparcv8 you don't have an operation doing conditionaly stores and > >you don't have RMW operations. > >The only way to do is to have a global lock variable o

Re: atomic_ question

2001-02-08 Thread Peter Jeremy
On 2001-Feb-08 22:21:32 +0100, Bernd Walter <[EMAIL PROTECTED]> wrote: >On sparcv8 you don't have an operation doing conditionaly stores and >you don't have RMW operations. >The only way to do is to have a global lock variable on which you spin >until the current client finishes. The SPARC archit

Re: atomic_ question

2001-02-08 Thread John Baldwin
On 08-Feb-01 Bernd Walter wrote: > Do we grant usuage of the atomic functions in interrupt code? > If yes there is a need to disable interrupts! > I'm not talking about interrupt threads. Yes, we use spin mutexes to schedule ithreads, and we use other atomic operations in IPI handlers. -- Joh

Re: atomic_ question

2001-02-08 Thread Bernd Walter
On Fri, Feb 09, 2001 at 07:57:50AM +1100, Peter Jeremy wrote: > On 2001-Feb-08 18:21:07 +0100, Bernd Walter <[EMAIL PROTECTED]> wrote: > >Are atomic_* implementations allowed to spin/sleep? > > The atomic_* operations are the primitives used to build all the > higher level locking functions. The

Re: atomic_ question

2001-02-08 Thread Peter Jeremy
On 2001-Feb-08 18:21:07 +0100, Bernd Walter <[EMAIL PROTECTED]> wrote: >Are atomic_* implementations allowed to spin/sleep? The atomic_* operations are the primitives used to build all the higher level locking functions. Therefore you are not allowed to sleep. As for spinning: You can't impleme

atomic_ question

2001-02-08 Thread Bernd Walter
Are atomic_* implementations allowed to spin/sleep? The question is because some platforms don't have atomic operations for adding and so on (e.g. sparcv8). The only way to implement them on these platforms is to use a lock. Now I'm wonder if the use of a sleep mutex is allowed or is a simple spin