version 1.11, 2012/05/10 09:52:12
|
version 1.12, 2012/07/30 09:23:47
|
|
|
| |
//============================================================================== | //============================================================================== |
// | // |
// PEGASUS_PLATFORM_HPUX_PARISC_ACC |
// PEGASUS_PLATFORM_HPUX_PARISC_ACC || PEGASUS_PLATFORM_HPUX_PARISC_GNU |
// | // |
// NOTE: This spinlock implementation is based on the paper "Implementing | // NOTE: This spinlock implementation is based on the paper "Implementing |
// Spinlocks on the Intel(R) Itanium(R) Architecture an PA-RISC" by Tor | // Spinlocks on the Intel(R) Itanium(R) Architecture an PA-RISC" by Tor |
|
|
// | // |
//============================================================================== | //============================================================================== |
| |
#if defined(PEGASUS_PLATFORM_HPUX_PARISC_ACC) |
#if defined(PEGASUS_PLATFORM_HPUX_PARISC_ACC) || \ |
|
defined(PEGASUS_PLATFORM_HPUX_PARISC_GNU) |
# define PEGASUS_SPIN_LOCK_DEFINED | # define PEGASUS_SPIN_LOCK_DEFINED |
| |
# include <sys/time.h> // For select() | # include <sys/time.h> // For select() |
|
|
{ | { |
// Ensure that the compiler doesn't hold any externally-visible values in | // Ensure that the compiler doesn't hold any externally-visible values in |
// registers across the lock release. | // registers across the lock release. |
|
#ifndef PEGASUS_PLATFORM_HPUX_PARISC_GNU |
_flush_globals(); | _flush_globals(); |
|
#endif |
| |
// Set to unlocked | // Set to unlocked |
*x.lock = 1; | *x.lock = 1; |
|
|
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* PEGASUS_PLATFORM_HPUX_PARISC_ACC */ |
#endif /* PEGASUS_PLATFORM_HPUX_PARISC_ACC || |
|
PEGASUS_PLATFORM_HPUX_PARISC_GNU */ |
| |
//============================================================================== | //============================================================================== |
// | // |