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

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 implement

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. Therefore

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. -- John

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

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 on which

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. The