diff options
Diffstat (limited to 'ACE/ace')
74 files changed, 133 insertions, 2383 deletions
diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp index e276cc6d4c2..06b0289b89a 100644 --- a/ACE/ace/ACE.cpp +++ b/ACE/ace/ACE.cpp @@ -66,11 +66,6 @@ ACE::out_of_handles (int error) error == EINVAL || // Without threads check for EOPNOTSUPP error == EOPNOTSUPP || -#elif defined (sun) - // On sun, we need to check for ENOSR also. - error == ENOSR || - // Without threads check for ENOTSUP - error == ENOTSUP || #elif defined (__FreeBSD__) // On FreeBSD we need to check for EOPNOTSUPP (LinuxThreads) or // ENOSYS (libc_r threads) also. diff --git a/ACE/ace/Array_Map.h b/ACE/ace/Array_Map.h index d7ddf25535c..9dfd6f32225 100644 --- a/ACE/ace/Array_Map.h +++ b/ACE/ace/Array_Map.h @@ -33,13 +33,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL -#if defined __SUNPRO_CC && !defined _RWSTD_ALLOCATOR -# define ACE_ARRAY_MAP_DEFAULT_ALLOCATOR(K, V) std::allocator_interface< \ - std::allocator<void>, \ - std::pair<K, V> > -#else -# define ACE_ARRAY_MAP_DEFAULT_ALLOCATOR(K, V) std::allocator<std::pair<K, V> > -#endif +#define ACE_ARRAY_MAP_DEFAULT_ALLOCATOR(K, V) std::allocator<std::pair<K, V> > /** * @class ACE_Array_Map diff --git a/ACE/ace/Atomic_Op.cpp b/ACE/ace/Atomic_Op.cpp index 4b16b311743..52394cd01a3 100644 --- a/ACE/ace/Atomic_Op.cpp +++ b/ACE/ace/Atomic_Op.cpp @@ -7,10 +7,6 @@ #if defined (ACE_HAS_BUILTIN_ATOMIC_OP) -#if defined (ACE_INCLUDE_ATOMIC_OP_SPARC) -# include "ace/Atomic_Op_Sparc.h" -#endif /* ACE_INCLUDE_ATOMIC_OP_SPARC */ - namespace { #if defined (_MSC_VER) // Disable "no return value" warning, as we will be putting @@ -27,10 +23,6 @@ single_cpu_increment (volatile long *value) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); return tmp + 1; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_add_long ( - reinterpret_cast<volatile unsigned long*> (value), 1); #elif defined(__GNUC__) && defined(__PPC__) long tmp; asm("lwz %0,%1" : "=r" (tmp) : "m" (*value) ); @@ -51,10 +43,6 @@ single_cpu_decrement (volatile long *value) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); return tmp - 1; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_add_long ( - reinterpret_cast<volatile unsigned long*> (value), -1); #elif defined(__GNUC__) && defined(__PPC__) long tmp; asm("lwz %0,%1" : "=r" (tmp) : "m" (*value) ); @@ -74,10 +62,6 @@ single_cpu_exchange (volatile long *value, long rhs) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) ); return rhs; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_swap_long ( - reinterpret_cast<volatile unsigned long*> (value), rhs); #elif defined(__GNUC__) && defined(__PPC__) long tmp; asm("lwz %0,%1" : "=r" (tmp) : "m" (rhs) ); @@ -97,10 +81,6 @@ single_cpu_exchange_add (volatile long *value, long rhs) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "xadd %0, (%1)" : "+r"(rhs) : "r"(addr) ); return rhs; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_swap_add_long ( - reinterpret_cast<volatile unsigned long*> (value), rhs); #elif defined(__GNUC__) && defined(__PPC__) long tmp; asm("add %0,%1,%2" : "=r" (tmp) : "r" (*value), "r" (rhs) ); @@ -140,10 +120,6 @@ multi_cpu_increment (volatile long *value) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); return tmp + 1; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_add_long ( - reinterpret_cast<volatile unsigned long*> (value), 1); #else /* ACE_HAS_INTEL_ASSEMBLY*/ ACE_UNUSED_ARG (value); ACE_NOTSUP_RETURN (-1); @@ -158,10 +134,6 @@ multi_cpu_decrement (volatile long *value) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); return tmp - 1; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_add_long ( - reinterpret_cast<volatile unsigned long*> (value), -1); #else /* ACE_HAS_INTEL_ASSEMBLY*/ ACE_UNUSED_ARG (value); ACE_NOTSUP_RETURN (-1); @@ -176,10 +148,6 @@ multi_cpu_exchange (volatile long *value, long rhs) // The XCHG instruction automatically follows LOCK semantics asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) ); return rhs; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_swap_long ( - reinterpret_cast<volatile unsigned long*> (value), rhs); #else /* ACE_HAS_INTEL_ASSEMBLY*/ ACE_UNUSED_ARG (value); ACE_UNUSED_ARG (rhs); @@ -194,10 +162,6 @@ multi_cpu_exchange_add (volatile long *value, long rhs) unsigned long addr = reinterpret_cast<unsigned long> (value); asm( "lock ; xadd %0, (%1)" : "+r"(rhs) : "r"(addr) ); return rhs; -#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))) - return ace_atomic_swap_add_long ( - reinterpret_cast<volatile unsigned long*> (value), rhs); #elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) # if defined (_MSC_VER) __asm diff --git a/ACE/ace/Atomic_Op.h b/ACE/ace/Atomic_Op.h index 3534c1bef0c..0c505666976 100644 --- a/ACE/ace/Atomic_Op.h +++ b/ACE/ace/Atomic_Op.h @@ -43,8 +43,6 @@ # define ACE_HAS_BUILTIN_ATOMIC_OP # elif defined (ACE_HAS_VXATOMICLIB) # define ACE_HAS_BUILTIN_ATOMIC_OP -# elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && !defined (ACE_HAS_BUILTIN_ATOMIC_OP) -# define ACE_HAS_BUILTIN_ATOMIC_OP # endif /* WIN32 */ #endif /* ACE_HAS_THREADS */ diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl index 517e3ca7d0e..12fb795946e 100644 --- a/ACE/ace/Atomic_Op.inl +++ b/ACE/ace/Atomic_Op.inl @@ -8,10 +8,6 @@ # include <vxAtomicLib.h> #endif -#if defined (ACE_HAS_SOLARIS_ATOMIC_LIB) -# include <atomic.h> -#endif - ACE_BEGIN_VERSIONED_NAMESPACE_DECL #if defined (ACE_HAS_BUILTIN_ATOMIC_OP) @@ -44,8 +40,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ () return ::InterlockedIncrement (const_cast<long *> (&this->value_)); #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) + 1; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_inc_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_)); #else /* WIN32 */ return (*increment_fn_) (&this->value_); #endif /* WIN32 */ @@ -66,8 +60,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- () return ::InterlockedDecrement (const_cast<long *> (&this->value_)); #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) - 1; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_dec_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_)); #else /* WIN32 */ return (*decrement_fn_) (&this->value_); #endif /* WIN32 */ @@ -90,8 +82,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator+= (long rhs) rhs) + rhs; #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) + rhs; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs); #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ return (*exchange_add_fn_) (&this->value_, rhs) + rhs; #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ @@ -108,8 +98,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-= (long rhs) -rhs) - rhs; #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) - rhs; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), -rhs); #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ return (*exchange_add_fn_) (&this->value_, -rhs) - rhs; #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ @@ -160,8 +148,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs) ::InterlockedExchange (const_cast<long *> (&this->value_), rhs); #elif defined (ACE_HAS_VXATOMICLIB) ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs); #else /* WIN32 */ (*exchange_fn_) (&this->value_, rhs); #endif /* WIN32 */ @@ -178,8 +164,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= ( ::InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_); #elif defined (ACE_HAS_VXATOMICLIB) ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs.value_); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs.value_); #else /* WIN32 */ (*exchange_fn_) (&this->value_, rhs.value_); #endif /* WIN32 */ @@ -195,8 +179,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange (long newval) return ::InterlockedExchange (const_cast<long *> (&this->value_), newval); #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), newval); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), newval); #else /* WIN32 */ return (*exchange_fn_) (&this->value_, newval); #endif /* WIN32 */ @@ -243,8 +225,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator++ () return static_cast<unsigned long> (::InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)))); #elif defined (ACE_HAS_VXATOMICLIB) return static_cast<unsigned long> (::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) + 1; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_inc_ulong_nv (&this->value_); #else /* WIN32 */ return static_cast<unsigned long> ((*increment_fn_) (reinterpret_cast<volatile long *> (&this->value_))); #endif /* WIN32 */ @@ -265,8 +245,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-- () return static_cast<unsigned long> (::InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)))); #elif defined (ACE_HAS_VXATOMICLIB) return static_cast<unsigned long> (::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) - 1; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_dec_ulong_nv (&this->value_); #else /* WIN32 */ return static_cast<unsigned long> ((*decrement_fn_) (reinterpret_cast<volatile long *> (&this->value_))); #endif /* WIN32 */ @@ -289,8 +267,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator+= (unsigned long rhs) rhs)) + rhs; #elif defined (ACE_HAS_VXATOMICLIB) return static_cast<unsigned long> (::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) + rhs; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_add_long_nv (&this->value_, rhs); #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs)) + rhs; #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ @@ -307,8 +283,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-= (unsigned long rhs) -static_cast<long>(rhs))) - rhs; #elif defined (ACE_HAS_VXATOMICLIB) return static_cast<unsigned long> (::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) - rhs; -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_add_long_nv (&this->value_, -rhs); #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ long l_rhs = static_cast<long> (rhs); return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -l_rhs)) - rhs; @@ -360,8 +334,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs) ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs); #elif defined (ACE_HAS_VXATOMICLIB) ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - ::atomic_swap_ulong (&this->value_, rhs); #else /* WIN32 */ (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs); #endif /* WIN32 */ @@ -378,8 +350,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= ( ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_); #elif defined (ACE_HAS_VXATOMICLIB) ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs.value_); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - ::atomic_swap_ulong (&this->value_, rhs.value_); #else /* WIN32 */ (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs.value_); #endif /* WIN32 */ @@ -395,8 +365,6 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::exchange (unsigned long newval) return ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval); #elif defined (ACE_HAS_VXATOMICLIB) return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), newval); -#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) - return ::atomic_swap_ulong (&this->value_, newval); #else /* WIN32 */ return (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), newval); #endif /* WIN32 */ diff --git a/ACE/ace/Atomic_Op_Sparc.c b/ACE/ace/Atomic_Op_Sparc.c deleted file mode 100644 index 9e59864ae8a..00000000000 --- a/ACE/ace/Atomic_Op_Sparc.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - * This is a C file for a reason. The Sun C++ compiler does not accept - * inline assembler. - * - * Portions of this code are based on atomic operations found in the - * linux kernel source code. - */ - -#if defined (ACE_INCLUDE_ATOMIC_OP_SPARC) - -#if defined(__i386) && defined(__SUNPRO_C) -static void -__sunpro_asm_code() { - __asm("\n\ - .globl ace_atomic_add_long \n\ - .type ace_atomic_add_long,@function \n\ - .align 4 \n\ -ace_atomic_add_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - lock; xadd %eax, (%edx) \n\ - addl 0x00000008(%esp), %eax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_long \n\ - .type ace_atomic_swap_long,@function \n\ - .align 4 \n\ -ace_atomic_swap_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - xchg %eax, (%edx) \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_add_long \n\ - .type ace_atomic_swap_add_long,@function \n\ - .align 4 \n\ -ace_atomic_swap_add_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - lock; xadd %eax, (%edx) \n\ - ret \n\ - "); -} - -#elif defined(__x86_64) && defined(__SUNPRO_C) - -static void -__sunpro_asm_code() { - __asm("\n\ - .globl ace_atomic_add_long \n\ - .type ace_atomic_add_long,@function \n\ - .align 16 \n\ -ace_atomic_add_long: \n\ - movq %rsi, %rax \n\ - lock; xaddq %rax, (%rdi) \n\ - addq %rsi, %rax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_long \n\ - .type ace_atomic_swap_long,@function \n\ - .align 16 \n\ -ace_atomic_swap_long: \n\ - xchgq %rsi, (%rdi) \n\ - movq %rsi, %rax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_add_long \n\ - .type ace_atomic_swap_add_long,@function \n\ - .align 16 \n\ -ace_atomic_swap_add_long: \n\ - lock; xaddq %rsi, (%rdi) \n\ - movq %rsi, %rax \n\ - ret \n\ - "); -} - -#elif defined (__sparcv9) - -unsigned long -ace_atomic_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_add:\n" - "add %o2, %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_add\n" - "mov %o3, %o2\n" - "retl\n" - "add %o2, %o1, %o0\n"); -} - -unsigned long -ace_atomic_swap_long (volatile unsigned long *dest, unsigned long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_swap:\n" - "mov %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_swap\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o3, %o0\n"); -} - -unsigned long -ace_atomic_swap_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_swap_add:\n" - "mov %o2, %o4\n" - "add %o2, %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_swap_add\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o4, %o0\n"); -} - -#else - -unsigned long -ace_atomic_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_add:\n" - "add %o2, %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_add\n" - "mov %o3, %o2\n" - "retl\n" - "add %o2, %o1, %o0\n"); -} - -unsigned long -ace_atomic_swap_long (volatile unsigned long *dest, unsigned long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_swap:\n" - "mov %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_swap\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o3, %o0\n"); -} - -unsigned long -ace_atomic_swap_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_swap_add:\n" - "mov %o2, %o4\n" - "add %o2, %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_swap_add\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o4, %o0\n"); -} - -# endif /* __sparcv9 */ - -#elif !defined (__GNUC__) && !defined (__INTEL_COMPILER) -/* Make compilers stop complaining about an empty translation unit */ -static int shut_up_compiler = 0; -#endif /* ACE_INCLUDE_ATOMIC_OP_SPARC */ diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h index be7828165f5..2e2ce3bdf10 100644 --- a/ACE/ace/CDR_Base.h +++ b/ACE/ace/CDR_Base.h @@ -264,7 +264,7 @@ public: // VxWorks' compiler (gcc 2.96) gets confused by the operator long // double, so we avoid using long double as the NativeImpl. // Linux's x86 long double format (12 or 16 bytes) is incompatible - // with Windows, Solaris, and MacOS X (and probably others) + // with Windows, and MacOS X (and probably others) // long double format (8 or 16 bytes). If you need 32-bit Linux to // inter-operate with 64-bit Linux you will want to define this // macro to 0 so that "long double" is used. Otherwise, do not define diff --git a/ACE/ace/Condition_T.cpp b/ACE/ace/Condition_T.cpp index 3c16a20201f..539bdf1232b 100644 --- a/ACE/ace/Condition_T.cpp +++ b/ACE/ace/Condition_T.cpp @@ -128,10 +128,9 @@ ACE_Condition<MUTEX>::wait (MUTEX &mutex, } } -// Peform an "alertable" timed wait. If the argument ABSTIME == 0 -// then we do a regular cond_wait(), else we do a timed wait for up to -// ABSTIME using the Solaris cond_timedwait() function. - +/// Peform an "alertable" timed wait. If @a abstime == 0 +/// then we do a regular cond_wait(), else we do a timed wait for up to +/// @a abstime template <class MUTEX> int ACE_Condition<MUTEX>::wait (const ACE_Time_Value *abstime) { diff --git a/ACE/ace/Containers_T.cpp b/ACE/ace/Containers_T.cpp index c4ac4b5e2da..1b3b6b144bc 100644 --- a/ACE/ace/Containers_T.cpp +++ b/ACE/ace/Containers_T.cpp @@ -1396,7 +1396,7 @@ ACE_Bounded_Set_Iterator<T>::done () const { ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::done"); - return static_cast<ACE_CAST_CONST size_t> (this->next_) >= + return static_cast<size_t> (this->next_) >= this->s_.cur_size_; } diff --git a/ACE/ace/Containers_T.h b/ACE/ace/Containers_T.h index 8282dca833d..533a48924bb 100644 --- a/ACE/ace/Containers_T.h +++ b/ACE/ace/Containers_T.h @@ -986,18 +986,6 @@ template <class T> class ACE_DLList_Reverse_Iterator; typedef ACE_Double_Linked_List<ACE_DLList_Node> ACE_DLList_Base; -//typedef ACE_Double_Linked_List_Iterator <ACE_DLList_Node> -// ACE_DLList_Iterator_Base; -//typedef ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node> -// ACE_DLList_Reverse_Iterator_Base; -//@@ These two typedefs (inherited from James Hu's original design) -// have been removed because Sun CC 4.2 had problems with it. I guess -// having the DLList_Iterators inheriting from a class which is -// actually a typedef leads to problems. #define'ing rather than -// typedef'ing worked, but as per Carlos's reccomendation, I'm just -// replacing all references to the base classes with their actual -// type. Matt Braun (6/15/99) - /** * @class ACE_DLList * diff --git a/ACE/ace/Dev_Poll_Reactor.cpp b/ACE/ace/Dev_Poll_Reactor.cpp index dc9265414ea..6ac51473285 100644 --- a/ACE/ace/Dev_Poll_Reactor.cpp +++ b/ACE/ace/Dev_Poll_Reactor.cpp @@ -2335,24 +2335,7 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle, { short const events = this->reactor_mask_to_poll_event (new_mask); -#if defined (sun) - // Apparently events cannot be updated on-the-fly on Solaris so - // remove the existing events, and then add the new ones. - struct pollfd pfd[2]; - - pfd[0].fd = handle; - pfd[0].events = POLLREMOVE; - pfd[0].revents = 0; - pfd[1].fd = (events == POLLREMOVE ? ACE_INVALID_HANDLE : handle); - pfd[1].events = events; - pfd[1].revents = 0; - - // Change the events associated with the given file descriptor. - if (ACE_OS::write (this->poll_fd_, - pfd, - sizeof (pfd)) != sizeof (pfd)) - return -1; -#elif defined (ACE_HAS_EVENT_POLL) +#if defined (ACE_HAS_EVENT_POLL) struct epoll_event epev; ACE_OS::memset (&epev, 0, sizeof (epev)); diff --git a/ACE/ace/High_Res_Timer.h b/ACE/ace/High_Res_Timer.h index 154201bbf1a..6c94f3566d3 100644 --- a/ACE/ace/High_Res_Timer.h +++ b/ACE/ace/High_Res_Timer.h @@ -29,7 +29,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * * @brief A high resolution timer class wrapper that encapsulates * OS-specific high-resolution timers, such as those found on - * Solaris, Win32/Pentium, and VxWorks. + * Win32/Pentium, and VxWorks. * * Most of the member functions don't return values. The only * reason that one would fail is if high-resolution time isn't @@ -58,9 +58,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * This is probably not a problem profiling code, but could be * on if the high resolution timer class is used to initiate * actions after a "long" timeout. - * On Solaris, a scale factor of 1000 should be used because its - * high-resolution timer returns nanoseconds. However, on Intel - * platforms, we use RDTSC which returns the number of clock + * On Intel platforms, we use RDTSC which returns the number of clock * ticks since system boot. For a 200MHz cpu, each clock tick * is 1/200 of a microsecond; the global_scale_factor_ should * therefore be 200 or 200000 if it's in unit/millisecond. @@ -75,8 +73,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * you query for your @c timer.stop() value might not be the one * you queried for @c timer.start(). Its not clear how much * divergence there would be, if any. - * This issue is not mentioned in the Solaris 2.5.1 gethrtime - * man page. * A RDTSC NOTE: RDTSC is the Intel Pentium read-time stamp counter * and is actualy a 64 bit clock cycle counter, which is increased * with every cycle. It has a low overhead and can be read within @@ -109,7 +105,7 @@ public: * global_scale_factor_. This allows applications to set the scale * factor just once for all High_Res_Timers. Check * High_Res_Timer.cpp for the default global_scale_factors for - * several platforms. For many platforms (e.g., Solaris), the + * several platforms. For many platforms the * global_scale_factor_ is set to 1000 so that <scale_factor> need * not be set. Careful, a <scale_factor> of 0 will cause division * by zero exceptions. diff --git a/ACE/ace/IOStream.h b/ACE/ace/IOStream.h index ca5e831bc9b..810d4c6dda5 100644 --- a/ACE/ace/IOStream.h +++ b/ACE/ace/IOStream.h @@ -343,16 +343,6 @@ typedef ostream& (*__omanip_)(ostream&); // operators. Notice how the <ipfx> and <isfx> functions are used. #define GET_SIG(MT,DT) inline virtual MT& operator>> (DT v) -# if (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) -#define GET_CODE { \ - if (ipfx (0)) \ - { \ - (*((istream*)this)) >> (v); \ - } \ - isfx (); \ - return *this; \ - } -# else #define GET_CODE { \ if (ipfx (0)) \ { \ @@ -361,7 +351,6 @@ typedef ostream& (*__omanip_)(ostream&); isfx (); \ return *this; \ } -# endif #define GET_PROT(MT,DT,CODE) GET_SIG(MT,DT) CODE #define GET_FUNC(MT,DT) GET_PROT(MT,DT,GET_CODE) @@ -370,16 +359,6 @@ typedef ostream& (*__omanip_)(ostream&); // operators. Notice how the <opfx> and <osfx> functions are used. #define PUT_SIG(MT,DT) inline virtual MT& operator<< (DT v) -# if (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) -#define PUT_CODE { \ - if (opfx ()) \ - { \ - (*((ostream *) this)) << (v); \ - } \ - osfx (); \ - return *this; \ - } -# else #define PUT_CODE { \ if (opfx ()) \ { \ @@ -388,7 +367,6 @@ typedef ostream& (*__omanip_)(ostream&); osfx (); \ return *this; \ } -# endif #define PUT_PROT(MT,DT,CODE) PUT_SIG(MT,DT) CODE #define PUT_FUNC(MT,DT) PUT_PROT(MT,DT,PUT_CODE) diff --git a/ACE/ace/LOCK_SOCK_Acceptor.h b/ACE/ace/LOCK_SOCK_Acceptor.h index 907e6f3bca1..07d3a46210a 100644 --- a/ACE/ace/LOCK_SOCK_Acceptor.h +++ b/ACE/ace/LOCK_SOCK_Acceptor.h @@ -26,11 +26,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * * @brief Specialize ACE_SOCK_Acceptor to lock around <accept>; * - * This class is necessary since some OS platforms (e.g., - * Solaris 2.5) do not allow multiple threads/processes to - * simultaneously call <accept> on the same listen-mode - * port/socket. Thus, we need to protect against multiple - * concurrent accesses by using the appropriate type of lock. + * This class is necessary since some OS platforms do not allow + * multiple threads/processes to simultaneously call @c accept + * on the same listen-mode port/socket. Thus, we need to + * protect against multiple concurrent accesses by using + * the appropriate type of lock. */ template <class ACE_LOCK> class ACE_LOCK_SOCK_Acceptor : public ACE_SOCK_Acceptor diff --git a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp index 17f2d5db1c0..9524a483c64 100644 --- a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp +++ b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp @@ -20,8 +20,6 @@ namespace ACE , Linux_Network_Interface_Monitor ( " %*[^:]: %lu %*u %*u %*u %*u %*u %*u %*u %*u %*u") /// Scan format for /proc/net/dev -#elif defined (ACE_HAS_KSTAT) - , Solaris_Network_Interface_Monitor (ACE_TEXT ("rbytes")) #elif defined (__NetBSD__) || defined (__OpenBSD__) , BSD_Network_Interface_Monitor (ACE_TEXT ("ibytes")) #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h index 0daae6872f2..de3158513d3 100644 --- a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h +++ b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h @@ -25,8 +25,6 @@ #include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h" #elif defined (ACE_LINUX) #include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h" #elif defined (__FreeBSD__) || defined (__Lynx__) #include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h" #elif defined (__NetBSD__) || defined (__OpenBSD__) @@ -54,8 +52,6 @@ namespace ACE , public Windows_Multi_Instance_Monitor #elif defined (ACE_LINUX) , public Linux_Network_Interface_Monitor -#elif defined (ACE_HAS_KSTAT) - , public Solaris_Network_Interface_Monitor #elif defined (__NetBSD__) || defined (__OpenBSD__) , public BSD_Network_Interface_Monitor #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp index 2e63fcc1d7a..b196f2f01f5 100644 --- a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp +++ b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp @@ -20,8 +20,6 @@ namespace ACE , Linux_Network_Interface_Monitor ( " %*[^:]: %*u %*u %*u %*u %*u %*u %*u %*u %lu %*u") /// Scan format for /proc/net/dev -#elif defined (ACE_HAS_KSTAT) - , Solaris_Network_Interface_Monitor (ACE_TEXT ("obytes")) #elif defined (__FreeBSD__) || defined (__Lynx__) , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("obytes")) #elif defined (__NetBSD__) || defined (__OpenBSD__) diff --git a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h index dbe3f8fe008..8672d6749bf 100644 --- a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h +++ b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h @@ -25,8 +25,6 @@ #include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h" #elif defined (ACE_LINUX) #include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h" #elif defined (__FreeBSD__) || defined (__Lynx__) #include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h" #elif defined (__NetBSD__) || defined (__OpenBSD__) @@ -54,8 +52,6 @@ namespace ACE , public Windows_Multi_Instance_Monitor #elif defined (ACE_LINUX) , public Linux_Network_Interface_Monitor -#elif defined (ACE_HAS_KSTAT) - , public Solaris_Network_Interface_Monitor #elif defined (__NetBSD__) || defined (__OpenBSD__) , public BSD_Network_Interface_Monitor #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp b/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp index 60ca87f76c4..af3bfe97163 100644 --- a/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp +++ b/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp @@ -2,10 +2,6 @@ #if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1) -#if defined (ACE_HAS_KSTAT) -#include <sys/sysinfo.h> -#endif - #if defined (ACE_LINUX) #include "ace/OS_NS_stdio.h" #endif @@ -27,7 +23,7 @@ namespace ACE #if defined (ACE_HAS_WIN32_PDH) , Windows_Monitor (ACE_TEXT("\\Processor(_Total)\\% Processor Time")) #endif -#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT) +#if defined (ACE_LINUX) , user_ (0) , wait_ (0) , kernel_ (0) @@ -37,10 +33,6 @@ namespace ACE #endif #if defined (ACE_LINUX) , file_ptr_ (0) -#elif defined (ACE_HAS_KSTAT) - , kstats_ (0) - , kstat_ (0) - , kstat_id_ (0) #endif { this->init (); @@ -58,7 +50,7 @@ namespace ACE this->access_kstats (&this->idle_); #endif -#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT) +#if defined (ACE_LINUX) double delta_idle = this->idle_ - this->prev_idle_; double total = this->user_ + this->wait_ + this->kernel_ + this->idle_; @@ -109,12 +101,6 @@ namespace ACE this->prev_total_ = this->user_ + this->wait_ + this->kernel_ + this->prev_idle_; -#elif defined (ACE_HAS_KSTAT) - /// Stored similarly to Linux, in a system file. - this->access_kstats (&this->prev_idle_); - - this->prev_total_ = - this->user_ + this->wait_ + this->kernel_ + this->prev_idle_; #endif } @@ -160,93 +146,6 @@ namespace ACE ACE_OS::fclose (this->file_ptr_); } #endif - -#if defined (ACE_HAS_KSTAT) - void - CPU_Load_Monitor::access_kstats (unsigned long *which_idle) - { - this->kstats_ = kstat_open (); - - if (this->kstats_ == 0) - { - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("opening kstats file failed\n"))); - return; - } - - this->kstat_id_ = this->kstats_->kc_chain_id; - - while (true) - { - this->kernel_ = 0UL; - this->wait_ = 0UL; - this->user_ = 0UL; - (*which_idle) = 0UL; - - /// Unlike Linux's "/proc/stat", there is no entry for total CPU - /// stats, so we have to sum them manually. - for (this->kstat_ = this->kstats_->kc_chain; - this->kstat_ != 0; - this->kstat_ = this->kstat_->ks_next) - { - int result = ACE_OS::strncmp (this->kstat_->ks_name, - "cpu_stat", - ACE_OS::strlen ("cpu_stat")); - - if (result == 0) - { - /// Because the kstat chain can change dynamically, - /// watch the chain ID and restart the walk if the ID - /// differs from what we saw during the walk. The restart - /// is done by breaking from the cycle with kstat_ not 0. - - kid_t kstat_id = kstat_read (this->kstats_, this->kstat_, 0); - - if (kstat_id != this->kstat_id_) - { - break; - } - - cpu_stat_t &kstat_cpu = - *((cpu_stat_t *) this->kstat_->ks_data); - - this->kernel_ += kstat_cpu.cpu_sysinfo.cpu[CPU_KERNEL]; - this->wait_ += kstat_cpu.cpu_sysinfo.cpu[CPU_WAIT]; - this->user_ += kstat_cpu.cpu_sysinfo.cpu[CPU_USER]; - (*which_idle) += kstat_cpu.cpu_sysinfo.cpu[CPU_IDLE]; - } - } - - if (this->kstat_ != 0) - { - /// The ID changed underneath us, so get the new one and - /// start again. - this->kstat_id_ = kstat_chain_update (this->kstats_); - - if (! this->kstat_id_ > 0) - { - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("kstat chain update ") - ACE_TEXT ("returned null id\n"))); - return; - } - } - else - { - /// Clean run, exit the WHILE loop. - break; - } - } - - int status = kstat_close (this->kstats_); - - if (status != 0) - { - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("closing kstats file failed\n"))); - } - } -#endif } } diff --git a/ACE/ace/Monitor_Control/CPU_Load_Monitor.h b/ACE/ace/Monitor_Control/CPU_Load_Monitor.h index 037cb5d19b2..f286478039b 100644 --- a/ACE/ace/Monitor_Control/CPU_Load_Monitor.h +++ b/ACE/ace/Monitor_Control/CPU_Load_Monitor.h @@ -23,8 +23,6 @@ #if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H) #include "ace/Monitor_Control/Windows_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -#include "ace/os_include/os_kstat.h" #endif #include "ace/Monitor_Control/Monitor_Control_export.h" @@ -67,15 +65,11 @@ namespace ACE void access_proc_stat (unsigned long *which_idle); #endif -#if defined (ACE_HAS_KSTAT) - void access_kstats (unsigned long *which_idle); -#endif - private: static const char* default_name_; - /// Common to Linux and Solaris implementations. -#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT) + /// Linux implementation +#if defined (ACE_LINUX) unsigned long user_; unsigned long wait_; unsigned long kernel_; @@ -86,10 +80,6 @@ namespace ACE #if defined (ACE_LINUX) FILE *file_ptr_; char buf_[1024]; -#elif defined (ACE_HAS_KSTAT) - kstat_ctl_t *kstats_; - kstat_t *kstat_; - kid_t kstat_id_; #endif }; } diff --git a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp index 49593fee95c..ab288a05dfa 100644 --- a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp +++ b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp @@ -1,7 +1,3 @@ -#if defined (ACE_HAS_KSTAT) -#include <sys/sysinfo.h> -#endif - #include "ace/Monitor_Control/Memory_Usage_Monitor.h" #if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1) @@ -41,15 +37,6 @@ namespace ACE double percent_mem_usage = used_ram / this->sysinfo_.totalram * 100.0; this->receive (percent_mem_usage); -#elif defined (ACE_HAS_KSTAT) - unsigned long page_size = sysconf (_SC_PAGE_SIZE); - unsigned long total = sysconf (_SC_PHYS_PAGES) * page_size; - unsigned long free = sysconf (_SC_AVPHYS_PAGES) * page_size; - - double used = total - free; - double percent_mem_usage = used / total * 100.0; - - this->receive (percent_mem_usage); #endif } diff --git a/ACE/ace/Monitor_Control/Monitor_Control.mpc b/ACE/ace/Monitor_Control/Monitor_Control.mpc index a510ac2da38..5073b019163 100644 --- a/ACE/ace/Monitor_Control/Monitor_Control.mpc +++ b/ACE/ace/Monitor_Control/Monitor_Control.mpc @@ -20,7 +20,6 @@ project(Monitor_Control) : acelib, ace_etcl_parser, ace_output, install { Num_Threads_Monitor.cpp Packets_Received_Monitor.cpp Packets_Sent_Monitor.cpp - Solaris_Network_Interface_Monitor.cpp Windows_Monitor.cpp Windows_Multi_Instance_Monitor.cpp } diff --git a/ACE/ace/Monitor_Control/Num_Threads_Monitor.h b/ACE/ace/Monitor_Control/Num_Threads_Monitor.h index 422a71c79ea..7a20d2d0b78 100644 --- a/ACE/ace/Monitor_Control/Num_Threads_Monitor.h +++ b/ACE/ace/Monitor_Control/Num_Threads_Monitor.h @@ -23,14 +23,6 @@ #if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H) #include "ace/Monitor_Control/Windows_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -/// There is apparently no way to query the number of threads on the -/// Solaris platform. The only benchmark I've seen had to put hooks -/// in the thread creation functions to keep track of the highest -/// thread ID, then check all the IDs less than that to see if the -/// threads still exist. Since we don't have that option in this -/// framework, which is to be used by existing applications, this -/// particular OS monitor is left unimplemented on Solaris. #endif #include "ace/Monitor_Control/Monitor_Control_export.h" diff --git a/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp b/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp index b7fb58f971d..4d222b86514 100644 --- a/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp +++ b/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp @@ -20,8 +20,6 @@ namespace ACE , Linux_Network_Interface_Monitor ( " %*[^:]: %*u %lu %*u %*u %*u %*u %*u %*u %*u %*u") /// Scan format for /proc/net/dev -#elif defined (ACE_HAS_KSTAT) - , Solaris_Network_Interface_Monitor (ACE_TEXT ("ipackets")) #elif defined (__FreeBSD__) || defined (__Lynx__) , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("ipackets")) #elif defined (__NetBSD__) || defined (__OpenBSD__) diff --git a/ACE/ace/Monitor_Control/Packets_Received_Monitor.h b/ACE/ace/Monitor_Control/Packets_Received_Monitor.h index 7d163b0401a..d0338dfde6b 100644 --- a/ACE/ace/Monitor_Control/Packets_Received_Monitor.h +++ b/ACE/ace/Monitor_Control/Packets_Received_Monitor.h @@ -25,8 +25,6 @@ #include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h" #elif defined (ACE_LINUX) #include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h" #elif defined (__FreeBSD__) || defined (__Lynx__) #include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h" #elif defined (__NetBSD__) || defined (__OpenBSD__) @@ -54,8 +52,6 @@ namespace ACE , public Windows_Multi_Instance_Monitor #elif defined (ACE_LINUX) , public Linux_Network_Interface_Monitor -#elif defined (ACE_HAS_KSTAT) - , public Solaris_Network_Interface_Monitor #elif defined (__NetBSD__) || defined (__OpenBSD__) , public BSD_Network_Interface_Monitor #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp index 1319daadc6d..5c3046c0e3e 100644 --- a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp +++ b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp @@ -20,8 +20,6 @@ namespace ACE , Linux_Network_Interface_Monitor ( " %*[^:]: %*u %*u %*u %*u %*u %*u %*u %*u %*u %lu") /// Scan format for /proc/net/dev -#elif defined (ACE_HAS_KSTAT) - , Solaris_Network_Interface_Monitor (ACE_TEXT ("opackets")) #elif defined (__NetBSD__) || defined (__OpenBSD__) , BSD_Network_Interface_Monitor (ACE_TEXT ("opackets")) #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h index b9056eda83b..85de0ca1d63 100644 --- a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h +++ b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h @@ -25,8 +25,6 @@ #include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h" #elif defined (ACE_LINUX) #include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h" -#elif defined (ACE_HAS_KSTAT) -#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h" #elif defined (__FreeBSD__) || defined (__Lynx__) #include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h" #elif defined (__NetBSD__) || defined (__OpenBSD__) @@ -54,8 +52,6 @@ namespace ACE , public Windows_Multi_Instance_Monitor #elif defined (ACE_LINUX) , public Linux_Network_Interface_Monitor -#elif defined (ACE_HAS_KSTAT) - , public Solaris_Network_Interface_Monitor #elif defined (__NetBSD__) || defined (__OpenBSD__) , public BSD_Network_Interface_Monitor #elif defined (__FreeBSD__) || defined (__Lynx__) diff --git a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp deleted file mode 100644 index a3e09a8afa2..00000000000 --- a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp +++ /dev/null @@ -1,221 +0,0 @@ -#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h" - -#if defined (ACE_HAS_KSTAT) - -#include "ace/Log_Category.h" -#include "ace/OS_NS_stdio.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE -{ - namespace Monitor_Control - { - Solaris_Network_Interface_Monitor::Solaris_Network_Interface_Monitor ( - const ACE_TCHAR *lookup_str) - : value_ (0UL), - start_ (0UL), - lookup_str_ (lookup_str) - { - this->init (); - } - - void - Solaris_Network_Interface_Monitor::update_i () - { - this->access_kstats (this->value_); - this->value_ -= this->start_; - } - - void - Solaris_Network_Interface_Monitor::clear_impl () - { - this->init (); - } - - void - Solaris_Network_Interface_Monitor::init () - { - unsigned long i; - - for (i = 0UL; i < MAX_LO_INTERFACES; ++i) - { - this->value_array_lo_[i] = 0UL; - } - - for (i = 0UL; i < MAX_HME_INTERFACES; ++i) - { - this->value_array_hme_[i] = 0UL; - } - - this->access_kstats (this->start_); - } - - void - Solaris_Network_Interface_Monitor::access_kstats ( - ACE_UINT64 &which_member) - { - this->kstats_ = kstat_open (); - - if (this->kstats_ == 0) - { - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("opening kstats file failed\n"))); - return; - } - - this->kstat_id_ = this->kstats_->kc_chain_id; - int status = 0; - - while (true) - { - /// We have to sum the network interfaces manually. - for (this->kstat_ = this->kstats_->kc_chain; - this->kstat_ != 0; - this->kstat_ = this->kstat_->ks_next) - { - if (ACE_OS::strcmp (this->kstat_->ks_class, "net") != 0) - { - continue; - } - - unsigned long ks_instance = this->kstat_->ks_instance; - - if (ACE_OS::strcmp (this->kstat_->ks_module, "lo") == 0) - { - /// Interfaces 'lo' have only packet counters. - if (this->lookup_str_ == ACE_TEXT ("obytes") - || this->lookup_str_ == ACE_TEXT ("rbytes")) - { - continue; - } - - status = this->check_ks_module (ks_instance, - MAX_LO_INTERFACES, - "MAX_LO_INTERFACES", - this->value_array_lo_, - which_member); - - if (status == -1) - { - /// Unrecoverable error, diagnostic already output. - (void) kstat_close (this->kstats_); - return; - } - else if (status == 1) - { - /// The kstat_id changed underneath us, start over. - break; - } - } - else if (ACE_OS::strcmp (this->kstat_->ks_module, "hme") == 0 - || ACE_OS::strcmp (this->kstat_->ks_module, "bge") == 0) - { - status = this->check_ks_module (ks_instance, - MAX_HME_INTERFACES, - "MAX_HME_INTERFACES", - this->value_array_hme_, - which_member); - - if (status == -1) - { - /// Unrecoverable error, diagnostic already output. - (void) kstat_close (this->kstats_); - return; - } - else if (status == 1) - { - /// The kstat_id changed underneath us, start over. - break; - } - } - } - - if (this->kstat_) - { - this->kstat_id_ = kstat_chain_update (this->kstats_); - - if (! this->kstat_id_ > 0) - { - ACELIB_ERROR ((LM_ERROR, "kstat is is not > 0.\n")); - break; - } - } - else - { - break; - } - } - - status = kstat_close (this->kstats_); - - if (status != 0) - { - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("closing kstats file failed\n"))); - } - } - - int - Solaris_Network_Interface_Monitor::check_ks_module ( - const unsigned long ks_instance, - const unsigned long which_max, - const char *max_str, - ACE_UINT64 *value_array, - ACE_UINT64 &which_member) - { - if (! (ks_instance < which_max)) - { - ACELIB_ERROR_RETURN ((LM_ERROR, - "%s exceeded.\n", - max_str), - -1); - } - - /// Because the kstat chain can change dynamically, - /// watch the chain ID and restart the walk if the ID - /// differs from what we saw during the walk. The restart - /// is done by breaking from the cycle with kstat_ not 0. - - kid_t kstat_id = - kstat_read (this->kstats_, this->kstat_, 0); - - if (kstat_id != this->kstat_id_) - { - /// This return value restarts the walk as described above. - return 1; - } - - kstat_named_t *value = - (kstat_named_t *) kstat_data_lookup ( - this->kstat_, - ACE_TEXT_ALWAYS_CHAR (this->lookup_str_.rep ())); - - if (value == 0) - { - /// Just return and let the calling FOR loop advance. - return 0; - } - - if (value->data_type != KSTAT_DATA_UINT32) - { - ACELIB_ERROR_RETURN ((LM_ERROR, - "Wrong data type.\n"), - -1); - } - - /// Guard against overflow. - value_array[ks_instance] += - value->value.ui32 - - static_cast<ACE_UINT32> (value_array[ks_instance]); - - which_member += value_array[ks_instance]; - - return 0; - } - } -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* defined (ACE_HAS_KSTAT) */ diff --git a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h deleted file mode 100644 index 15dbc9c50e1..00000000000 --- a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h +++ /dev/null @@ -1,89 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Solaris_Network_Interface_Monitor.h - * - * @author Jeff Parsons <j.parsons@vanderbilt.edu> - */ -//============================================================================= - -#ifndef SOLARIS_NETWORK_INTERFACE_MONITOR_H -#define SOLARIS_NETWORK_INTERFACE_MONITOR_H - -#include /**/ "ace/pre.h" - -#include "ace/SString.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Monitor_Control/Monitor_Control_export.h" - -#if defined (ACE_HAS_KSTAT) - -#include "ace/os_include/os_kstat.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE -{ - namespace Monitor_Control - { - /** - * @class Solaris_Network_Interface_Monitor - * - * @brief Mixin class for network interface monitors compiled on - * Solaris machines. - */ - class MONITOR_CONTROL_Export Solaris_Network_Interface_Monitor - { - protected: - /// The kstat interface can access a wealth of - /// network information about the system. To get the specific - /// value we want to monitor, we just vary the lookup string. - Solaris_Network_Interface_Monitor (const ACE_TCHAR *lookup_str); - - /// Platform-specific implementation. - void update_i (); - - /// Platform-specific reset. - void clear_impl (); - - protected: - ACE_UINT64 value_; - - private: - /// Common code. - - void init (); - void access_kstats (ACE_UINT64 &which_member); - int check_ks_module (const unsigned long ks_instance, - const unsigned long which_max, - const char *max_str, - ACE_UINT64 *value_array, - ACE_UINT64 &which_member); - - - private: - static const unsigned long MAX_LO_INTERFACES = 5UL; - static const unsigned long MAX_HME_INTERFACES = 10UL; - ACE_UINT64 value_array_lo_[MAX_LO_INTERFACES]; - ACE_UINT64 value_array_hme_[MAX_HME_INTERFACES]; - ACE_UINT64 start_; - ACE_TString lookup_str_; - kstat_ctl_t *kstats_; - kstat_t *kstat_; - kid_t kstat_id_; - }; - } -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* defined (ACE_HAS_KSTAT) */ - -#include /**/ "ace/post.h" - -#endif // SOLARIS_NETWORK_INTERFACE_MONITOR_H diff --git a/ACE/ace/Mutex.h b/ACE/ace/Mutex.h index ba784f63b7f..16950c71872 100644 --- a/ACE/ace/Mutex.h +++ b/ACE/ace/Mutex.h @@ -161,7 +161,7 @@ public: # define ACE_MUTEX_PROCESS_LOCK_IS_SEMA ACE_sema_t process_sema_; typedef ACE_sema_t Process_Lock; -#elif defined ACE_HAS_PTHREADS || defined ACE_HAS_STHREADS +#elif defined ACE_HAS_PTHREADS # define ACE_MUTEX_USE_PROCESS_LOCK # define ACE_MUTEX_PROCESS_LOCK_IS_MUTEX typedef ACE_mutex_t Process_Lock; diff --git a/ACE/ace/OS_Errno.cpp b/ACE/ace/OS_Errno.cpp index 1c2f75e490a..8c082487b73 100644 --- a/ACE/ace/OS_Errno.cpp +++ b/ACE/ace/OS_Errno.cpp @@ -1,11 +1,9 @@ // -*- C++ -*- #include "ace/OS_Errno.h" -// Inlining this class on debug builds with gcc on Solaris can cause -// deadlocks during static initialization. On non debug builds it -// causes compilation errors. -#if !defined (ACE_HAS_INLINED_OSCALLS) || \ - (defined (__GNUG__) && defined (__sun__)) +// Inlining this class on debug builds with gcc deadlocks during static +// initialization. On non debug builds it causes compilation errors. +#if !defined (ACE_HAS_INLINED_OSCALLS) # if defined (ACE_INLINE) # undef ACE_INLINE # endif /* ACE_INLINE */ diff --git a/ACE/ace/OS_Errno.h b/ACE/ace/OS_Errno.h index 9ebdc03b5c7..3f2555b3fb5 100644 --- a/ACE/ace/OS_Errno.h +++ b/ACE/ace/OS_Errno.h @@ -76,11 +76,10 @@ private: ACE_END_VERSIONED_NAMESPACE_DECL -// Inlining this class on debug builds with gcc on Solaris can cause +// Inlining this class on debug builds with can cause // deadlocks during static initialization. On non debug builds it // causes compilation errors. -#if defined (ACE_HAS_INLINED_OSCALLS) && \ - (!defined (__GNUG__) || !defined (__sun__)) +#if defined (ACE_HAS_INLINED_OSCALLS) # if defined (ACE_INLINE) # undef ACE_INLINE # endif /* ACE_INLINE */ diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp index 58dd6b343fb..ebfa188593d 100644 --- a/ACE/ace/OS_NS_Thread.cpp +++ b/ACE/ace/OS_NS_Thread.cpp @@ -1877,14 +1877,6 @@ ACE_OS::mutex_init (ACE_mutex_t *m, ::pthread_mutexattr_destroy (&l_attributes); return result; -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (sa); - ACE_UNUSED_ARG (lock_type); - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_init (m, lock_scope, attributes), - result), - int); # elif defined (ACE_HAS_WTHREADS) m->type_ = lock_scope; @@ -1949,9 +1941,6 @@ ACE_OS::mutex_destroy (ACE_mutex_t *m) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_mutex_destroy (m), result), int); # endif /* ACE_LACKS_PTHREAD_MUTEX_DESTROY */ -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_destroy (m), result), int); # elif defined (ACE_HAS_WTHREADS) switch (m->type_) { @@ -2033,9 +2022,6 @@ ACE_OS::mutex_lock (ACE_mutex_t *m) // Note, don't use "::" here since the following call is often a macro. int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_lock (m), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_lock (m), result), int); # elif defined (ACE_HAS_WTHREADS) switch (m->type_) { @@ -2207,9 +2193,6 @@ ACE_OS::mutex_trylock (ACE_mutex_t *m) // Note, don't use "::" here since the following call is often a macro. int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_trylock (m), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_trylock (m), result), int); # elif defined (ACE_HAS_WTHREADS) switch (m->type_) { @@ -2308,9 +2291,6 @@ ACE_OS::mutex_unlock (ACE_mutex_t *m) // Note, don't use "::" here since the following call is often a macro. int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_unlock (m), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_unlock (m), result), int); # elif defined (ACE_HAS_WTHREADS) switch (m->type_) { @@ -3010,72 +2990,15 @@ ACE_OS::event_timedwait (ACE_event_t *event, int ACE_OS::lwp_getparams (ACE_Sched_Params &sched_params) { -#if defined (ACE_HAS_STHREADS) || defined (sun) - // Get the class TS and RT class IDs. - ACE_id_t rt_id; - ACE_id_t ts_id; - if (ACE_OS::scheduling_class ("RT", rt_id) == -1 - || ACE_OS::scheduling_class ("TS", ts_id) == -1) - return -1; - - // Get this LWP's scheduling parameters. - pcparms_t pcparms; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&pcparms, 0, sizeof pcparms); - pcparms.pc_cid = PC_CLNULL; - - if (ACE_OS::priority_control (P_LWPID, - P_MYID, - PC_GETPARMS, - (char *) &pcparms) == -1) - return -1; - else if (pcparms.pc_cid == rt_id) - { - // RT class. - rtparms_t rtparms; - ACE_OS::memcpy (&rtparms, pcparms.pc_clparms, sizeof rtparms); - - sched_params.policy (ACE_SCHED_FIFO); - sched_params.priority (rtparms.rt_pri); - sched_params.scope (ACE_SCOPE_THREAD); - ACE_Time_Value quantum (rtparms.rt_tqsecs, - rtparms.rt_tqnsecs == RT_TQINF - ? 0 : rtparms.rt_tqnsecs * 1000); - sched_params.quantum (quantum); - return 0; - } - else if (pcparms.pc_cid == ts_id) - { - /* TS class */ - tsparms_t tsparms; - ACE_OS::memcpy (&tsparms, pcparms.pc_clparms, sizeof tsparms); - - sched_params.policy (ACE_SCHED_OTHER); - sched_params.priority (tsparms.ts_upri); - sched_params.scope (ACE_SCOPE_THREAD); - return 0; - } - else - return -1; - -#else /* ! ACE_HAS_STHREADS && ! sun */ ACE_UNUSED_ARG (sched_params); ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_STHREADS && ! sun */ } int ACE_OS::lwp_setparams (const ACE_Sched_Params &sched_params) { -#if defined (ACE_HAS_STHREADS) || defined (sun) - ACE_Sched_Params lwp_params (sched_params); - lwp_params.scope (ACE_SCOPE_LWP); - return ACE_OS::sched_params (lwp_params); -#else /* ! ACE_HAS_STHREADS && ! sun */ ACE_UNUSED_ARG (sched_params); ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_STHREADS && ! sun */ } #if defined ACE_HAS_THREADS && defined ACE_LACKS_RWLOCK_T @@ -3205,9 +3128,7 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params, ACE_id_t id) { ACE_OS_TRACE ("ACE_OS::sched_params"); -#if defined (ACE_HAS_STHREADS) - return ACE_OS::set_scheduling_params (sched_params, id); -#elif defined (ACE_HAS_PTHREADS) && \ +#if defined (ACE_HAS_PTHREADS) && \ (!defined (ACE_LACKS_SETSCHED) || \ defined (ACE_HAS_PTHREAD_SCHEDPARAM)) if (sched_params.quantum () != ACE_Time_Value::zero) @@ -3248,12 +3169,6 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params, result), int); } -# if defined (sun) - // We need to be able to set LWP priorities on Suns, even without - // ACE_HAS_STHREADS, to obtain preemption. - else if (sched_params.scope () == ACE_SCOPE_LWP) - return ACE_OS::set_scheduling_params (sched_params, id); -# endif /* sun */ else // sched_params.scope () == ACE_SCOPE_LWP, which isn't POSIX { errno = EINVAL; @@ -3366,132 +3281,24 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params, ACE_UNUSED_ARG (sched_params); ACE_UNUSED_ARG (id); ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STHREADS */ +#endif /* ACE_HAS_PTHREADS */ } int ACE_OS::scheduling_class (const char *class_name, ACE_id_t &id) { -#if defined (ACE_HAS_PRIOCNTL) - // Get the priority class ID. - pcinfo_t pcinfo; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&pcinfo, 0, sizeof pcinfo); - - ACE_OS::strcpy (pcinfo.pc_clname, class_name); - if (ACE_OS::priority_control (P_ALL /* ignored */, - P_MYID /* ignored */, - PC_GETCID, - (char *) &pcinfo) == -1) - { - return -1; - } - else - { - id = pcinfo.pc_cid; - return 0; - } -#else /* ! ACE_HAS_PRIOCNTL */ ACE_UNUSED_ARG (class_name); ACE_UNUSED_ARG (id); ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_PRIOCNTL */ } int ACE_OS::set_scheduling_params (const ACE_Sched_Params &sched_params, ACE_id_t id) { -#if defined (ACE_HAS_PRIOCNTL) - // Set priority class, priority, and quantum of this LWP or process as - // specified in sched_params. - - // Get the priority class ID. - ACE_id_t class_id; - if (ACE_OS::scheduling_class (sched_params.policy() == ACE_SCHED_OTHER ? - "TS" : - "RT", class_id) == -1) - { - return -1; - } - - pcparms_t pcparms; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&pcparms, 0, sizeof pcparms); - - pcparms.pc_cid = class_id; - - if (sched_params.policy () == ACE_SCHED_OTHER && - sched_params.quantum () == ACE_Time_Value::zero) - // SunOS doesn't support non-zero quantums in time-sharing class: use - // real-time class instead. - { - tsparms_t tsparms; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&tsparms, 0, sizeof tsparms); - - // Don't change ts_uprilim (user priority limit) - tsparms.ts_uprilim = TS_NOCHANGE; - tsparms.ts_upri = sched_params.priority (); - - // Package up the TS class ID and parameters for the - // priority_control () call. - ACE_OS::memcpy (pcparms.pc_clparms, &tsparms, sizeof tsparms); - } - else if (sched_params.policy () == ACE_SCHED_FIFO || - (sched_params.policy () == ACE_SCHED_RR && - sched_params.quantum () != ACE_Time_Value::zero)) - // must have non-zero quantum for RR, to make it meaningful - // A zero quantum with FIFO has special significance: it actually - // means infinite time quantum, i.e., run-to-completion. - { - rtparms_t rtparms; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&rtparms, 0, sizeof rtparms); - - rtparms.rt_pri = sched_params.priority (); - - if (sched_params.quantum () == ACE_Time_Value::zero) - { - // rtparms.rt_tqsecs is ignored with RT_TQINF - rtparms.rt_tqnsecs = RT_TQINF; - } - else - { - rtparms.rt_tqsecs = (ulong) sched_params.quantum ().sec (); - rtparms.rt_tqnsecs = sched_params.quantum ().usec () * 1000; - } - - // Package up the RT class ID and parameters for the - // priority_control () call. - ACE_OS::memcpy (pcparms.pc_clparms, &rtparms, sizeof rtparms); - } - else - { - errno = EINVAL; - return -1; - } - - if (ACE_OS::priority_control ((idtype_t) (sched_params.scope () == ACE_SCOPE_THREAD - ? ACE_SCOPE_PROCESS - : sched_params.scope ()), - id, - PC_SETPARMS, - (char *) &pcparms) < 0) - { - return ACE_OS::last_error (); - } - - return 0; -#else /* ! ACE_HAS_PRIOCNTL */ ACE_UNUSED_ARG (sched_params); ACE_UNUSED_ARG (id); ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_PRIOCNTL */ } int @@ -3730,7 +3537,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func, # if defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS) /* For MIT pthreads... */ sparam.prio = ACE_MIN (priority, PTHREAD_MAX_PRIORITY); -# elif defined(ACE_HAS_PTHREADS) && !defined (ACE_HAS_STHREADS) +# elif defined(ACE_HAS_PTHREADS) // The following code forces priority into range. if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO)) sparam.sched_priority = @@ -3833,7 +3640,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func, } # endif /* !ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP */ -# if ! defined(ACE_LACKS_THR_CONCURRENCY_FUNCS) if (ACE_BIT_ENABLED (flags, THR_NEW_LWP)) { // Increment the number of LWPs by one to emulate the @@ -3860,7 +3666,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func, return -1; } } -# endif /* ! ACE_LACKS_THR_CONCURRENCY_FUNCS */ } ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_create (thr_id, @@ -3877,75 +3682,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func, if (result != -1) *thr_handle = *thr_id; -# if defined (sun) && defined (ACE_HAS_ONLY_SCHED_OTHER) - // SunOS prior to 5.7: - - // If the priority is 0, then we might have to set it now because we - // couldn't set it with ::pthread_attr_setschedparam, as noted - // above. This doesn't provide strictly correct behavior, because - // the thread was created (above) with the priority of its parent. - // (That applies regardless of the inherit_sched attribute: if it - // was PTHREAD_INHERIT_SCHED, then it certainly inherited its - // parent's priority. If it was PTHREAD_EXPLICIT_SCHED, then "attr" - // was initialized by the SunOS ::pthread_attr_init () to contain - // NULL for the priority, which indicated to SunOS ::pthread_create - // () to inherit the parent priority.) - if (priority == 0) - { - // Check the priority of this thread, which is the parent - // of the newly created thread. If it is 0, then the - // newly created thread will have inherited the priority - // of 0, so there's no need to explicitly set it. - struct sched_param sparam; - int policy = 0; - ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (thr_self (), - &policy, - &sparam), - result), int, - result); - - // The only policy supported by by SunOS, thru version 5.6, - // is SCHED_OTHER, so that's hard-coded here. - policy = ACE_SCHED_OTHER; - - if (sparam.sched_priority != 0) - { - ACE_OS::memset ((void *) &sparam, 0, sizeof sparam); - // The memset to 0 sets the priority to 0, so we don't need - // to explicitly set sparam.sched_priority. - - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (*thr_id, - policy, - &sparam), - result), - int); - } - } - -# if defined (ACE_NEEDS_LWP_PRIO_SET) -# if 0 - // It would be useful if we could make this work. But, it requires - // a mechanism for determining the ID of an LWP to which another - // thread is bound. Is there a way to do that? Instead, just rely - // on the code in ACE_Thread_Adapter::invoke () to set the LWP - // priority. - - // If the thread is bound, then set the priority on its LWP. - if (ACE_BIT_ENABLED (flags, THR_BOUND)) - { - ACE_Sched_Params sched_params (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO) || - ACE_BIT_ENABLED (flags, THR_SCHED_RR) ? - ACE_SCHED_FIFO : - ACE_SCHED_OTHER, - priority); - result = ACE_OS::lwp_setparams (sched_params, - /* ? How do we find the ID of the LWP - to which *thr_id is bound? */); - } -# endif /* 0 */ -# endif /* ACE_NEEDS_LWP_PRIO_SET */ - -# endif /* sun && ACE_HAS_ONLY_SCHED_OTHER */ auto_thread_args.release (); // *** Set pthread name (second try) @@ -3964,51 +3700,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func, # endif /* !ACE_HAS_PTHREAD_ATTR_SETNAME */ return result; -# elif defined (ACE_HAS_STHREADS) - int result; - int start_suspended = ACE_BIT_ENABLED (flags, THR_SUSPENDED); - - if (priority != ACE_DEFAULT_THREAD_PRIORITY) - // If we need to set the priority, then we need to start the - // thread in a suspended mode. - ACE_SET_BITS (flags, THR_SUSPENDED); - - ACE_OSCALL (ACE_ADAPT_RETVAL (::thr_create (stack, stacksize, - thread_args->entry_point (), - thread_args, - flags, thr_id), result), - int, result); - - if (result != -1) - { - // With SunOS threads, ACE_thread_t and ACE_hthread_t are the same. - *thr_handle = *thr_id; - - if (priority != ACE_DEFAULT_THREAD_PRIORITY) - { - // Set the priority of the new thread and then let it - // continue, but only if the user didn't start it suspended - // in the first place! - result = ACE_OS::thr_setprio (*thr_id, priority); - if (result != 0) - { - errno = result; - return -1; - } - - if (start_suspended == 0) - { - result = ACE_OS::thr_continue (*thr_id); - if (result != 0) - { - errno = result; - return -1; - } - } - } - } - auto_thread_args.release (); - return result; # elif defined (ACE_HAS_WTHREADS) ACE_UNUSED_ARG (thr_name); ACE_UNUSED_ARG (stack); @@ -4166,7 +3857,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func, return 0; } -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (func); ACE_UNUSED_ARG (args); @@ -4188,8 +3879,6 @@ ACE_OS::thr_exit (ACE_THR_FUNC_RETURN status) #if defined (ACE_HAS_THREADS) # if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_EXIT) ::pthread_exit (status); -# elif defined (ACE_HAS_STHREADS) - ::thr_exit (status); # elif defined (ACE_HAS_WTHREADS) // Can't call it here because on NT, the thread is exited // directly by ACE_Thread_Adapter::invoke (). @@ -4465,11 +4154,6 @@ ACE_OS::thr_keycreate_native (ACE_OS_thread_key_t *key, ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_key_create (key, dest), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_keycreate (key, dest), - result), - int); # elif defined (ACE_HAS_WTHREADS) ACE_UNUSED_ARG (dest); *key = ::TlsAlloc (); @@ -4477,7 +4161,7 @@ ACE_OS::thr_keycreate_native (ACE_OS_thread_key_t *key, if (*key == ACE_SYSCALL_FAILED) ACE_FAIL_RETURN (-1); return 0; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (key); ACE_UNUSED_ARG (dest); @@ -4571,9 +4255,6 @@ ACE_OS::thr_keyfree_native (ACE_OS_thread_key_t key) # endif /* ACE_LACKS_PTHREAD_KEY_DELETE */ # elif defined (ACE_HAS_THR_KEYDELETE) return ::thr_keydelete (key); -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (key); - ACE_NOTSUP_RETURN (-1); # elif defined (ACE_HAS_WTHREADS) ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::TlsFree (key), ace_result_), int, -1); # else @@ -4673,17 +4354,14 @@ ACE_OS::thr_setspecific_native (ACE_OS_thread_key_t key, void *data) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setspecific (key, data), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setspecific (key, data), result), int); # elif defined (ACE_HAS_WTHREADS) ::TlsSetValue (key, data); return 0; -# else /* ACE_HAS_STHREADS */ +# else /* ACE_HAS_PTHREADS */ ACE_UNUSED_ARG (key); ACE_UNUSED_ARG (data); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (key); ACE_UNUSED_ARG (data); diff --git a/ACE/ace/OS_NS_Thread.h b/ACE/ace/OS_NS_Thread.h index 763ee8cdd10..4a6c8321337 100644 --- a/ACE/ace/OS_NS_Thread.h +++ b/ACE/ace/OS_NS_Thread.h @@ -45,18 +45,6 @@ # endif # define ACE_EXPORT_MACRO ACE_Export -# if defined (ACE_HAS_PRIOCNTL) - // Need to #include thread.h before #defining THR_BOUND, etc., - // when building without threads on SunOS 5.x. -# if defined (sun) -# include /**/ <thread.h> -# endif /* sun */ - - // Need to #include these before #defining USYNC_PROCESS on SunOS 5.x. -# include /**/ <sys/rtpriocntl.h> -# include /**/ <sys/tspriocntl.h> -# endif /* ACE_HAS_PRIOCNTL */ - ACE_BEGIN_VERSIONED_NAMESPACE_DECL # if defined (ACE_WIN32) @@ -88,75 +76,13 @@ extern "C" { # if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) -# include /**/ <synch.h> -# include /**/ <thread.h> -# define ACE_SCOPE_PROCESS P_PID -# define ACE_SCOPE_LWP P_LWPID -# define ACE_SCOPE_THREAD (ACE_SCOPE_LWP + 1) -# else -# define ACE_SCOPE_PROCESS 0 -# define ACE_SCOPE_LWP 1 -# define ACE_SCOPE_THREAD 2 -# endif /* ACE_HAS_STHREADS */ - # if !defined (ACE_HAS_PTHREADS) # define ACE_SCHED_OTHER 0 # define ACE_SCHED_FIFO 1 # define ACE_SCHED_RR 2 # endif /* ! ACE_HAS_PTHREADS */ -# if defined (ACE_HAS_PTHREADS) -// moved to pthread.h -# elif defined (ACE_HAS_STHREADS) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Solaris threads, without PTHREADS. -// Typedefs to help compatibility with Windows NT and Pthreads. -typedef thread_t ACE_thread_t; -// Native TSS key type (not for general use) -typedef thread_key_t ACE_OS_thread_key_t; -// Application TSS key type (use this type except in TSS Emulation) -# if defined (ACE_HAS_TSS_EMULATION) - typedef u_int ACE_thread_key_t; -# else /* ! ACE_HAS_TSS_EMULATION */ - typedef ACE_OS_thread_key_t ACE_thread_key_t; -# endif /* ! ACE_HAS_TSS_EMULATION */ -typedef mutex_t ACE_mutex_t; -# if !defined (ACE_LACKS_RWLOCK_T) -typedef rwlock_t ACE_rwlock_t; -# endif /* !ACE_LACKS_RWLOCK_T */ -# if !defined (ACE_HAS_POSIX_SEM) && !defined (ACE_USES_FIFO_SEM) -typedef sema_t ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ - -typedef cond_t ACE_cond_t; -struct ACE_Export ACE_condattr_t -{ - int type; -}; -struct ACE_Export ACE_mutexattr_t -{ - int type; -}; -typedef ACE_thread_t ACE_hthread_t; -typedef ACE_mutex_t ACE_thread_mutex_t; - -ACE_END_VERSIONED_NAMESPACE_DECL - -# define THR_CANCEL_DISABLE 0 -# define THR_CANCEL_ENABLE 0 -# define THR_CANCEL_DEFERRED 0 -# define THR_CANCEL_ASYNCHRONOUS 0 -# define THR_JOINABLE 0 -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 -# define THR_INHERIT_SCHED 0 -# define THR_SCOPE_PROCESS 0 - -# elif defined (ACE_VXWORKS) +# if defined (ACE_VXWORKS) # include /**/ <sysLib.h> // for sysClkRateGet() # include /**/ <types/vxTypes.h> # if !defined (__RTP__) @@ -230,8 +156,8 @@ typedef struct typedef ACE_VX_TASK_ID ACE_thread_t; typedef ACE_VX_TASK_ID ACE_hthread_t; // Key type: the ACE TSS emulation requires the key type be unsigned, -// for efficiency. (Current POSIX and Solaris TSS implementations also -// use u_int, so the ACE TSS emulation is compatible with them.) +// for efficiency. (Current POSIX implementation use u_int, so the +// ACE TSS emulation is compatible with them.) // Native TSS key type typedef u_int ACE_OS_thread_key_t; // Application TSS key type (use this type except in TSS Emulation) @@ -424,11 +350,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL ACE_BEGIN_VERSIONED_NAMESPACE_DECL typedef pthread_rwlock_t ACE_rwlock_t; ACE_END_VERSIONED_NAMESPACE_DECL -# elif defined (ACE_HAS_STHREADS) -# include /**/ <synch.h> -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef rwlock_t ACE_rwlock_t; -ACE_END_VERSIONED_NAMESPACE_DECL # endif /* ACE_LACKS_RWLOCK_T */ // Define some default thread priorities on all threaded platforms, if @@ -748,18 +669,9 @@ typedef int ACE_pri_t; # else typedef int ACE_idtype_t; # endif /* ACE_HAS_IDTYPE_T */ -# if defined (ACE_HAS_STHREADS) -# if defined (ACE_LACKS_PRI_T) - typedef int pri_t; -# endif /* ACE_LACKS_PRI_T */ - typedef id_t ACE_id_t; -# define ACE_SELF P_MYID - typedef pri_t ACE_pri_t; -# else /* ! ACE_HAS_STHREADS */ typedef long ACE_id_t; # define ACE_SELF (-1) typedef short ACE_pri_t; -# endif /* ! ACE_HAS_STHREADS */ #endif /* !defined (ACE_WIN32) */ # if defined (ACE_HAS_TSS_EMULATION) @@ -1031,10 +943,6 @@ extern "C" ACE_Export void ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME (void *args); # define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME, (void *) A); # define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A) # elif defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CLEANUP) -// Though we are defining a extern "C" function to match the prototype of -// pthread_cleanup_push, it is undone by the Solaris header file -// /usr/include/pthread.h. So this macro generates a warning under Solaris -// with SunCC. This is a bug in the Solaris header file. extern "C" ACE_Export void ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME (void *args); # define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME, (void *) A); # define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A) @@ -1335,10 +1243,6 @@ namespace ACE_OS { //@} /// Low-level interface to @c priocntl(2). - /** - * Can't call the following priocntl, because that's a macro on - * Solaris. - */ ACE_NAMESPACE_INLINE_FUNCTION long priority_control (ACE_idtype_t, ACE_id_t, int, void *); diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl index af1ff53ab0d..35cb7ece5c8 100644 --- a/ACE/ace/OS_NS_Thread.inl +++ b/ACE/ace/OS_NS_Thread.inl @@ -16,10 +16,6 @@ # include "ace/Handle_Set.h" # endif /* ACE_USES_FIFO_SEM */ -#if defined (ACE_HAS_PRIOCNTL) -# include /**/ <sys/priocntl.h> -#endif /* ACE_HAS_PRIOCNTL */ - #if defined (ACE_HAS_ALLOC_HOOKS) # include "ace/Malloc_Base.h" #endif /* ACE_HAS_ALLOC_HOOKS */ @@ -247,15 +243,10 @@ ACE_OS::cond_broadcast (ACE_cond_t *cv) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_broadcast (cv), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_broadcast (cv), - result), - int); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) ::WakeAllConditionVariable (cv); return 0; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (cv); ACE_NOTSUP_RETURN (-1); @@ -270,13 +261,10 @@ ACE_OS::cond_destroy (ACE_cond_t *cv) # if defined (ACE_HAS_PTHREADS) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_destroy (cv), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_destroy (cv), result), int); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) // Windows doesn't have a destroy return 0; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (cv); ACE_NOTSUP_RETURN (-1); @@ -312,17 +300,10 @@ ACE_OS::cond_init (ACE_cond_t *cv, result = -1; // ACE_ADAPT_RETVAL used it for intermediate status return result; -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_init (cv, - attributes.type, - arg), - result), - int); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) ::InitializeConditionVariable (cv); return 0; -# endif /* ACE_HAS_PTHREADS vs. ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (cv); ACE_UNUSED_ARG (attributes); @@ -360,13 +341,10 @@ ACE_OS::cond_signal (ACE_cond_t *cv) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_signal (cv), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_signal (cv), result), int); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) ::WakeConditionVariable (cv); return 0; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (cv); ACE_NOTSUP_RETURN (-1); @@ -383,10 +361,6 @@ ACE_OS::cond_wait (ACE_cond_t *cv, int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_wait (cv, external_mutex), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_wait (cv, external_mutex), result), - int); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::SleepConditionVariableCS (cv, &external_mutex->thr_mutex_, INFINITE), result), @@ -420,20 +394,12 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv, (ACE_TIMESPEC_PTR) &ts), result), int, result); - // We need to adjust this to make the POSIX and Solaris return + // We need to adjust this to make the POSIX return // values consistent. EAGAIN is from Pthreads DRAFT4 if (result == -1 && (errno == ETIMEDOUT || errno == EAGAIN)) errno = ETIME; -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0 - ? ::cond_wait (cv, external_mutex) - : ::cond_timedwait (cv, - external_mutex, - (timestruc_t*)&ts), - result), - int, result); # elif defined (ACE_HAS_WTHREADS) && defined (ACE_HAS_WTHREADS_CONDITION_VARIABLE) int msec_timeout = 0; if (timeout != 0) @@ -450,7 +416,7 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv, int, result); return result; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ if (timeout != 0) timeout->set (ts); // Update the time value before returning. @@ -571,15 +537,11 @@ ACE_INLINE long ACE_OS::priority_control (ACE_idtype_t idtype, ACE_id_t identifier, int cmd, void *arg) { ACE_OS_TRACE ("ACE_OS::priority_control"); -#if defined (ACE_HAS_PRIOCNTL) - return priocntl (idtype, identifier, cmd, static_cast<caddr_t> (arg)); -#else /* ! ACE_HAS_PRIOCNTL*/ ACE_UNUSED_ARG (idtype); ACE_UNUSED_ARG (identifier); ACE_UNUSED_ARG (cmd); ACE_UNUSED_ARG (arg); ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_PRIOCNTL*/ } // This method is used to prepare the recursive mutex for releasing @@ -1020,7 +982,7 @@ ACE_OS::rw_rdlock (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_rdlock (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_rdlock (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1071,7 +1033,7 @@ ACE_OS::rw_tryrdlock (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_tryrdlock (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_tryrdlock (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1114,7 +1076,7 @@ ACE_OS::rw_trywrlock (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_trywrlock (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_trywrlock (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1163,8 +1125,7 @@ ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw) result), int); # elif !defined (ACE_LACKS_RWLOCK_T) - // Some native rwlocks, such as those on Solaris, don't - // support the upgrade feature . . . + // Some native rwlocks ACE_UNUSED_ARG (rw); ACE_NOTSUP_RETURN (-1); # else /* NT, POSIX, and VxWorks don't support this natively. */ @@ -1235,7 +1196,7 @@ ACE_OS::rw_unlock (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_unlock (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_unlock (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1294,7 +1255,7 @@ ACE_OS::rw_wrlock (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_wrlock (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_wrlock (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1347,7 +1308,7 @@ ACE_OS::rwlock_destroy (ACE_rwlock_t *rw) ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_rwlock_destroy (rw), result), int); -# else /* Solaris */ +# else /* ACE_HAS_PTHREADS_UNIX98_EXT */ int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_destroy (rw), result), int); # endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ @@ -1356,7 +1317,7 @@ ACE_OS::rwlock_destroy (ACE_rwlock_t *rw) ACE_OS::cond_destroy (&rw->waiting_readers_); ACE_OS::cond_destroy (&rw->waiting_important_writer_); return ACE_OS::cond_destroy (&rw->waiting_writers_); -# endif /* ACE_HAS_STHREADS && !defined (ACE_LACKS_RWLOCK_T) */ +# endif /* !defined (ACE_LACKS_RWLOCK_T) */ #else ACE_UNUSED_ARG (rw); ACE_NOTSUP_RETURN (-1); @@ -1466,10 +1427,7 @@ ACE_OS::sema_destroy (ACE_sema_t *s) int r2 = ACE_OS::close (s->fd_[1]); /* ignore error */ return r0 != 0 || r1 != 0 || r2 != 0 ? -1 : 0; #elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_destroy (s), result), int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) int r1 = ACE_OS::mutex_destroy (&s->lock_); int r2 = ACE_OS::cond_destroy (&s->count_nonzero_); return r1 != 0 || r2 != 0 ? -1 : 0; @@ -1480,7 +1438,7 @@ ACE_OS::sema_destroy (ACE_sema_t *s) ACE_OSCALL (::semDelete (s->sema_), int, result); s->sema_ = 0; return result; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (s); ACE_NOTSUP_RETURN (-1); @@ -1489,7 +1447,6 @@ ACE_OS::sema_destroy (ACE_sema_t *s) // NOTE: The previous four function definitions must appear before // ACE_OS::sema_init (). - ACE_INLINE int ACE_OS::sema_init (ACE_sema_t *s, u_int count, @@ -1601,23 +1558,6 @@ ACE_OS::sema_init (ACE_sema_t *s, # else if (name) { -# if defined (sun) - // Solaris require the name to start with a slash. Solaris - // further requires that there be no other slashes than the first. - const char *last_slash = ACE_OS::strrchr (name, '/'); - char name2[MAXPATHLEN]; - if (0 == last_slash) - { - ACE_OS::strcpy (name2, "/"); - ACE_OS::strcat (name2, name); - name = name2; - } -# if defined (sun) - else - name = last_slash; // Chop off chars preceding last slash -# endif /* sun */ -# endif /* sun */ - ACE_ALLOCATOR_RETURN (s->name_, ACE_OS::strdup (name), -1); @@ -1740,15 +1680,7 @@ ACE_OS::sema_init (ACE_sema_t *s, return 0; #elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - ACE_UNUSED_ARG (attributes); - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_init (s, count, type, arg), result), - int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) ACE_UNUSED_ARG (max); ACE_UNUSED_ARG (sa); int result = -1; @@ -1805,7 +1737,7 @@ ACE_OS::sema_init (ACE_sema_t *s, s->name_ = 0; s->sema_ = ::semCCreate (type, count); return s->sema_ ? 0 : -1; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (s); ACE_UNUSED_ARG (count); @@ -1920,10 +1852,7 @@ ACE_OS::sema_post (ACE_sema_t *s) return 0; return -1; # elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_post (s), result), int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) int result = -1; if (ACE_OS::mutex_lock (&s->lock_) == 0) @@ -1944,7 +1873,7 @@ ACE_OS::sema_post (ACE_sema_t *s) int, -1); # elif defined (ACE_VXWORKS) return ::semGive (s->sema_); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (s); ACE_NOTSUP_RETURN (-1); @@ -1961,9 +1890,9 @@ ACE_OS::sema_post (ACE_sema_t *s, u_int release_count) #else // On POSIX platforms we need to emulate this ourselves. // @@ We can optimize on this implementation. However, - // the semaphore promitive on Win32 doesn't allow one + // the semaphore primitive on Win32 doesn't allow one // to increase a semaphore to more than the count it was - // first initialized. Posix and solaris don't seem to have + // first initialized. Posix doesn't seem to have // this restriction. Should we impose the restriction in // our semaphore simulation? for (size_t i = 0; i < release_count; i++) @@ -2004,14 +1933,7 @@ ACE_OS::sema_trywait (ACE_sema_t *s) return rc == 1 ? 0 : (-1); # elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - // STHREADS semaphores set errno to EBUSY if trywait fails. - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_trywait (s), - result), - int); -# elif defined (ACE_HAS_PTHREADS) - +# if defined (ACE_HAS_PTHREADS) int result = -1; if (ACE_OS::mutex_lock (&s->lock_) == 0) @@ -2055,7 +1977,7 @@ ACE_OS::sema_trywait (ACE_sema_t *s) else // got the semaphore return 0; -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (s); ACE_NOTSUP_RETURN (-1); @@ -2074,10 +1996,7 @@ ACE_OS::sema_wait (ACE_sema_t *s) return 0; return -1; # elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_wait (s), result), int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) int result = 0; ACE_PTHREAD_CLEANUP_PUSH (&s->lock_); @@ -2123,7 +2042,7 @@ ACE_OS::sema_wait (ACE_sema_t *s) /* NOTREACHED */ # elif defined (ACE_VXWORKS) return ::semTake (s->sema_, WAIT_FOREVER); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (s); ACE_NOTSUP_RETURN (-1); @@ -2228,11 +2147,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) return -1; # elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (tv); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) int result = 0; ACE_Errno_Guard error (errno); @@ -2331,7 +2246,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) tv = tv.now (); // Update to time acquired return 0; } -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ # else ACE_UNUSED_ARG (s); ACE_UNUSED_ARG (tv); @@ -2427,14 +2342,6 @@ ACE_OS::sigwait (sigset_t *sset, int *sig) # if (defined (__FreeBSD__) && (__FreeBSD__ < 3)) ACE_UNUSED_ARG (sset); ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_STHREADS) - # if (_POSIX_C_SOURCE - 0 >= 199506L) || defined (_POSIX_PTHREAD_SEMANTICS) - errno = ::sigwait (sset, sig); - return errno == 0 ? *sig : -1; - #else - *sig = ::sigwait (sset); - return *sig; - #endif /* _POSIX_C_SOURCE - 0 >= 199506L || _POSIX_PTHREAD_SEMANTICS */ # elif defined (ACE_HAS_PTHREADS) # if defined (CYGWIN32) // Cygwin has sigwait definition, but it is not implemented @@ -2522,10 +2429,7 @@ ACE_OS::thr_continue (ACE_hthread_t target_thread) { ACE_OS_TRACE ("ACE_OS::thr_continue"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_continue (target_thread), result), int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) # if defined (ACE_HAS_PTHREAD_CONTINUE) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_continue (target_thread), @@ -2553,7 +2457,7 @@ ACE_OS::thr_continue (ACE_hthread_t target_thread) return 0; # elif defined (ACE_HAS_VXTHREADS) return ::taskResume (target_thread); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (target_thread); ACE_NOTSUP_RETURN (-1); @@ -2565,13 +2469,11 @@ ACE_OS::thr_getconcurrency () { ACE_OS_TRACE ("ACE_OS::thr_getconcurrency"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - return ::thr_getconcurrency (); -# elif defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREAD_GETCONCURRENCY) +# if defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREAD_GETCONCURRENCY) return pthread_getconcurrency (); # else ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_NOTSUP_RETURN (-1); #endif /* ACE_HAS_THREADS */ @@ -2594,9 +2496,6 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy) result); priority = param.sched_priority; return result; -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getprio (ht_id, &priority), result), int); # elif defined (ACE_HAS_WTHREADS) ACE_Errno_Guard error (errno); priority = ::GetThreadPriority (ht_id); @@ -2623,7 +2522,7 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy) ACE_UNUSED_ARG (ht_id); ACE_UNUSED_ARG (priority); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (ht_id); ACE_UNUSED_ARG (priority); @@ -2647,9 +2546,6 @@ ACE_OS::thr_getspecific_native (ACE_OS_thread_key_t key, void **data) # if defined (ACE_HAS_PTHREADS) *data = pthread_getspecific (key); return 0; -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getspecific (key, data), result), int); # elif defined (ACE_HAS_WTHREADS) *data = ::TlsGetValue (key); if (*data == 0 && ::GetLastError () != NO_ERROR) @@ -2705,11 +2601,7 @@ ACE_OS::thr_join (ACE_hthread_t thr_handle, { ACE_OS_TRACE ("ACE_OS::thr_join"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (thr_handle, 0, status), result), - int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) # if defined (ACE_LACKS_PTHREAD_JOIN) ACE_UNUSED_ARG (thr_handle); ACE_UNUSED_ARG (status); @@ -2754,7 +2646,7 @@ ACE_OS::thr_join (ACE_hthread_t thr_handle, ACE_UNUSED_ARG (thr_handle); ACE_UNUSED_ARG (status); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (thr_handle); ACE_UNUSED_ARG (status); @@ -2769,11 +2661,7 @@ ACE_OS::thr_join (ACE_thread_t waiter_id, { ACE_OS_TRACE ("ACE_OS::thr_join"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (waiter_id, thr_id, status), result), - int); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) # if defined (ACE_LACKS_PTHREAD_JOIN) ACE_UNUSED_ARG (waiter_id); ACE_UNUSED_ARG (thr_id); @@ -2793,7 +2681,7 @@ ACE_OS::thr_join (ACE_thread_t waiter_id, // This could be implemented if the DLL-Main function or the // task exit base class some log the threads which have exited ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (waiter_id); ACE_UNUSED_ARG (thr_id); @@ -2819,11 +2707,6 @@ ACE_OS::thr_kill (ACE_thread_t thr_id, int signum) result), int); # endif /* ACE_LACKS_PTHREAD_KILL */ -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_kill (thr_id, signum), - result), - int); # elif defined (ACE_HAS_VXTHREADS) //FUZZ: disable check_for_lack_ACE_OS return ::kill (thr_id, signum); @@ -2832,7 +2715,7 @@ ACE_OS::thr_kill (ACE_thread_t thr_id, int signum) ACE_UNUSED_ARG (thr_id); ACE_UNUSED_ARG (signum); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (thr_id); ACE_UNUSED_ARG (signum); @@ -2845,14 +2728,7 @@ ACE_OS::thr_min_stack () { ACE_OS_TRACE ("ACE_OS::thr_min_stack"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) -# if defined (ACE_HAS_THR_MINSTACK) - // Tandem did some weirdo mangling of STHREAD names... - return ::thr_minstack (); -# else - return ::thr_min_stack (); -# endif /* !ACE_HAS_THR_MINSTACK */ -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) # if defined (_SC_THREAD_STACK_MIN) return (size_t) ACE_OS::sysconf (_SC_THREAD_STACK_MIN); # elif defined (PTHREAD_STACK_MIN) @@ -2874,7 +2750,7 @@ ACE_OS::thr_min_stack () return status == OK ? taskDesc.td_stackSize : 0; # else /* Should not happen... */ ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_NOTSUP_RETURN (0); #endif /* ACE_HAS_THREADS */ @@ -2930,13 +2806,11 @@ ACE_OS::thr_self () # if defined (ACE_HAS_PTHREADS) // Note, don't use "::" here since the following call is often a macro. return pthread_self (); -# elif defined (ACE_HAS_STHREADS) - return ::thr_self (); # elif defined (ACE_HAS_WTHREADS) return ::GetCurrentThreadId (); # elif defined (ACE_HAS_VXTHREADS) return ::taskIdSelf (); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else return 1; // Might as well make it the first thread ;-) #endif /* ACE_HAS_THREADS */ @@ -2966,13 +2840,11 @@ ACE_OS::thr_self (ACE_hthread_t &self) self = pthread_self (); # elif defined (ACE_HAS_THREAD_SELF) self = ::thread_self (); -# elif defined (ACE_HAS_STHREADS) - self = ::thr_self (); # elif defined (ACE_HAS_WTHREADS) self = ::GetCurrentThread (); # elif defined (ACE_HAS_VXTHREADS) self = ::taskIdSelf (); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else self = 1; // Might as well make it the main thread ;-) #endif /* ACE_HAS_THREADS */ @@ -3014,10 +2886,6 @@ ACE_OS::thr_setcancelstate (int new_state, int *old_state) break; } return result; -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); # elif defined (ACE_HAS_WTHREADS) ACE_UNUSED_ARG (new_state); ACE_UNUSED_ARG (old_state); @@ -3087,18 +2955,13 @@ ACE_OS::thr_setconcurrency (int hint) { ACE_OS_TRACE ("ACE_OS::thr_setconcurrency"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setconcurrency (hint), - result), - int); -# elif defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREAD_SETCONCURRENCY) +# if defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREAD_SETCONCURRENCY) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setconcurrency (hint), result), int); # else ACE_UNUSED_ARG (hint); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (hint); ACE_NOTSUP_RETURN (-1); @@ -3135,9 +2998,6 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy) ¶m), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setprio (ht_id, priority), result), int); # elif defined (ACE_HAS_WTHREADS) ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetThreadPriority (ht_id, priority), ace_result_), @@ -3149,7 +3009,7 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy) ACE_UNUSED_ARG (ht_id); ACE_UNUSED_ARG (priority); ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (ht_id); ACE_UNUSED_ARG (priority); @@ -3165,7 +3025,7 @@ ACE_OS::thr_sigsetmask (int how, ACE_OS_TRACE ("ACE_OS::thr_sigsetmask"); #if defined (ACE_HAS_THREADS) # if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) - // DCE threads and Solaris 2.4 have no such function. + // DCE threads ACE_UNUSED_ARG (osm); ACE_UNUSED_ARG (nsm); ACE_UNUSED_ARG (how); @@ -3174,9 +3034,6 @@ ACE_OS::thr_sigsetmask (int how, # elif defined (ACE_HAS_SIGTHREADMASK) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sigthreadmask (how, nsm, osm), result), int); -# elif defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_sigsetmask (how, nsm, osm), result), int); # elif defined (ACE_HAS_PTHREADS) # if !defined (ACE_LACKS_PTHREAD_SIGMASK) int result; @@ -3241,10 +3098,7 @@ ACE_OS::thr_suspend (ACE_hthread_t target_thread) { ACE_OS_TRACE ("ACE_OS::thr_suspend"); #if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - int result; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_suspend (target_thread), result), int, -1); -# elif defined (ACE_HAS_PTHREADS) +# if defined (ACE_HAS_PTHREADS) # if defined (ACE_HAS_PTHREAD_SUSPEND) int result; ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_suspend (target_thread), result), int); @@ -3263,7 +3117,7 @@ ACE_OS::thr_suspend (ACE_hthread_t target_thread) /* NOTREACHED */ # elif defined (ACE_HAS_VXTHREADS) return ::taskSuspend (target_thread); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (target_thread); ACE_NOTSUP_RETURN (-1); @@ -3277,9 +3131,6 @@ ACE_OS::thr_testcancel () #if defined (ACE_HAS_THREADS) # if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL) pthread_testcancel (); -# elif defined (ACE_HAS_STHREADS) -# elif defined (ACE_HAS_WTHREADS) -# elif defined (ACE_HAS_VXTHREADS) # else // no-op: can't use ACE_NOTSUP_RETURN because there is no return value # endif /* ACE_HAS_PTHREADS */ @@ -3294,8 +3145,6 @@ ACE_OS::thr_yield () #if defined (ACE_HAS_THREADS) # if defined (ACE_HAS_PTHREADS) ::sched_yield (); -# elif defined (ACE_HAS_STHREADS) - ::thr_yield (); # elif defined (ACE_HAS_WTHREADS) ::Sleep (0); # elif defined (ACE_HAS_VXTHREADS) @@ -3304,7 +3153,7 @@ ACE_OS::thr_yield () // Now, it does seem to work. The context_switch_time test // works fine with task_delay set to 0. ::taskDelay (0); -# endif /* ACE_HAS_STHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ; #endif /* ACE_HAS_THREADS */ @@ -3352,13 +3201,13 @@ ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m, } return 0; -# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) +# elif defined (ACE_HAS_PTHREADS) // Force the use of USYNC_THREAD! return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg, 0, lock_type); # elif defined (ACE_HAS_VXTHREADS) return mutex_init (m, lock_type, name, arg); -# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (m); @@ -3395,12 +3244,12 @@ ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m, } return 0; -# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) +# elif defined (ACE_HAS_PTHREADS) // Force the use of USYNC_THREAD! return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg, 0, lock_type); # elif defined (ACE_HAS_VXTHREADS) return mutex_init (m, lock_type, name, arg); -# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */ +# endif /* ACE_HAS_PTHREADS */ #else ACE_UNUSED_ARG (m); ACE_UNUSED_ARG (lock_type); @@ -3483,7 +3332,7 @@ ACE_OS::thread_mutex_trylock (ACE_thread_mutex_t *m) ACE_UNUSED_ARG (m); ACE_NOTSUP_RETURN (-1); # endif /* ACE_HAS_WIN32_TRYLOCK */ -# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS) +# elif defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS) return ACE_OS::mutex_trylock (m); #endif /* Threads variety case */ diff --git a/ACE/ace/OS_NS_pwd.inl b/ACE/ace/OS_NS_pwd.inl index 3353f649469..74eae66e517 100644 --- a/ACE/ace/OS_NS_pwd.inl +++ b/ACE/ace/OS_NS_pwd.inl @@ -48,14 +48,6 @@ ACE_OS::getpwnam_r (const char *name, ACE_UNUSED_ARG (bufsize); ACE_UNUSED_ARG (result); ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_STHREADS) - if (::getpwnam_r (name, pwd, buffer, bufsize) != 0) - { - *result = 0; - return -1; - } - *result = pwd; - return 0; #else return ::getpwnam_r (name, pwd, buffer, bufsize, result); #endif /* ACE_LACKS_PWD_FUNCTIONS */ diff --git a/ACE/ace/OS_NS_sys_stat.inl b/ACE/ace/OS_NS_sys_stat.inl index 3e266681896..b3a7d38e142 100644 --- a/ACE/ace/OS_NS_sys_stat.inl +++ b/ACE/ace/OS_NS_sys_stat.inl @@ -28,12 +28,7 @@ namespace ACE_OS fstat (ACE_HANDLE handle, ACE_stat *stp) { ACE_OS_TRACE ("ACE_OS::fstat"); -#if defined (ACE_HAS_X86_STAT_MACROS) - // Solaris for intel uses an macro for fstat(), this is a wrapper - // for _fxstat() use of the macro. - // causes compile and runtime problems. - return ::_fxstat (_STAT_VER, handle, stp); -#elif defined (ACE_WIN32) +#if defined (ACE_WIN32) BY_HANDLE_FILE_INFORMATION fdata; if (::GetFileInformationByHandle (handle, &fdata) == FALSE) @@ -65,7 +60,7 @@ namespace ACE_OS return MQX_Filesystem::inst ().fstat (handle, stp); #else return ::fstat (handle, stp); -#endif /* !ACE_HAS_X86_STAT_MACROS */ +#endif /* !ACE_WIN32 */ } // This function returns the number of bytes in the file referenced by @@ -123,11 +118,7 @@ namespace ACE_OS ACE_OS_TRACE ("ACE_OS::lstat"); # if defined (ACE_LACKS_LSTAT) return ACE_OS::stat (file, stp); -# elif defined (ACE_HAS_X86_STAT_MACROS) - // Solaris for intel uses an macro for lstat(), this macro is a - // wrapper for _lxstat(). - return ::_lxstat (_STAT_VER, file, stp); -# else /* !ACE_HAS_X86_STAT_MACROS */ +# else /* !ACE_LACKS_LSTAT */ return ::lstat (file, stp); # endif /* ACE_LACKS_LSTAT */ } @@ -194,10 +185,6 @@ namespace ACE_OS ACE_OS_TRACE ("ACE_OS::stat"); #if defined (ACE_LACKS_STAT) ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_HAS_X86_STAT_MACROS) - // Solaris for intel uses an macro for stat(), this macro is a - // wrapper for _xstat(). - return ::_xstat (_STAT_VER, file, stp); #elif defined (ACE_MQX) return MQX_Filesystem::inst ().stat (file, stp); #else diff --git a/ACE/ace/OS_NS_time.inl b/ACE/ace/OS_NS_time.inl index 49d3b8c5669..a41b805d4d0 100644 --- a/ACE/ace/OS_NS_time.inl +++ b/ACE/ace/OS_NS_time.inl @@ -381,8 +381,7 @@ ACE_OS::nanosleep (const struct timespec *requested, #if defined (ACE_HAS_CLOCK_GETTIME) // ::nanosleep () is POSIX 1003.1b. So is ::clock_gettime (). So, // if ACE_HAS_CLOCK_GETTIME is defined, then ::nanosleep () should - // be available on the platform. On Solaris 2.x, both functions - // require linking with -lposix4. + // be available on the platform return ::nanosleep ((ACE_TIMESPEC_PTR) requested, remaining); #else ACE_UNUSED_ARG (remaining); diff --git a/ACE/ace/OS_NS_unistd.cpp b/ACE/ace/OS_NS_unistd.cpp index 2d618701ad4..49b5736f970 100644 --- a/ACE/ace/OS_NS_unistd.cpp +++ b/ACE/ace/OS_NS_unistd.cpp @@ -255,12 +255,7 @@ ACE_OS::fork (const ACE_TCHAR *program_name) ACE_UNUSED_ARG (program_name); ACE_NOTSUP_RETURN (pid_t (-1)); # else - pid_t const pid = -# if defined (ACE_HAS_STHREADS) - ::fork1 (); -#else - ::fork (); -#endif /* ACE_HAS_STHREADS */ + pid_t const pid = ::fork (); #if !defined (ACE_HAS_MINIMAL_ACE_OS) && !defined (ACE_HAS_THREADS) diff --git a/ACE/ace/OS_NS_unistd.h b/ACE/ace/OS_NS_unistd.h index a8a8fc3b979..6d4f270d132 100644 --- a/ACE/ace/OS_NS_unistd.h +++ b/ACE/ace/OS_NS_unistd.h @@ -119,8 +119,8 @@ namespace ACE_OS char *const argv[]); //@{ - /// Forks and exec's a process in a manner that works on Solaris and - /// NT. argv[0] must be the full path name to the executable. + /// Forks and exec's a process in a manner that works Windows. + /// argv[0] must be the full path name to the executable. ACE_NAMESPACE_INLINE_FUNCTION pid_t fork (); diff --git a/ACE/ace/OS_TLI.h b/ACE/ace/OS_TLI.h index 01795eb99d6..7af75c9cf6f 100644 --- a/ACE/ace/OS_TLI.h +++ b/ACE/ace/OS_TLI.h @@ -56,7 +56,6 @@ struct netbuf { }; // desired, local or peer, while t_getprotaddr() gets both at once. // t_getname() has values defined for the type, so these aren't defined // for XTI systems. So, define them here for ACE API users to use. - // These values were taken from sys/tiuser.h on Solaris. # if !defined (LOCALNAME) # define LOCALNAME 0 # endif @@ -107,12 +106,6 @@ extern "C" /* What to do here??? Is there a tli.h? */ # endif /* ACE_HAS_TIUSER_H */ -# if defined (ACE_HAS_SVR4_TLI) - // t_getname is a TLI extension added by some platforms before XTI - // was widely available. However, it's not often in the system's - // header files. Sun OS, for example, is like this. - extern "C" int t_getname (int, struct netbuf *, int); -# endif /* ACE_HAS_SVR4_TLI */ # endif /* !ACE_HAS_XTI */ # endif /* ACE_HAS_XTI || ACE_HAS_TLI */ diff --git a/ACE/ace/OS_TLI.inl b/ACE/ace/OS_TLI.inl index e2bc18c830f..fe69f57c699 100644 --- a/ACE/ace/OS_TLI.inl +++ b/ACE/ace/OS_TLI.inl @@ -163,16 +163,13 @@ t_getname (ACE_HANDLE handle, struct netbuf *namep, int type) else namep->len = peer.addr.len; return 0; - -#elif defined (ACE_HAS_SVR4_TLI) - return ::t_getname (handle, namep, type); #else ACE_UNUSED_ARG (handle); ACE_UNUSED_ARG (namep); ACE_UNUSED_ARG (type); ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SVR4_TLI */ +#endif /* ACE_HAS_XTI */ } ACE_INLINE int diff --git a/ACE/ace/POSIX_Proactor.cpp b/ACE/ace/POSIX_Proactor.cpp index 00035c87937..0a0602db1a8 100644 --- a/ACE/ace/POSIX_Proactor.cpp +++ b/ACE/ace/POSIX_Proactor.cpp @@ -19,10 +19,6 @@ #include "ace/OS_NS_signal.h" #include "ace/OS_NS_unistd.h" -#if defined (sun) -# include "ace/OS_NS_strings.h" -#endif /* sun */ - // ********************************************************************* ACE_BEGIN_VERSIONED_NAMESPACE_DECL @@ -59,23 +55,7 @@ public: ACE_POSIX_Proactor::ACE_POSIX_Proactor () : os_id_ (ACE_OS_UNDEFINED) { -#if defined(sun) - - os_id_ = ACE_OS_SUN; // set family - - char Buf [32]; - - ::memset(Buf,0,sizeof(Buf)); - - ACE_OS::sysinfo (SI_RELEASE , Buf, sizeof(Buf)-1); - - if (ACE_OS::strcasecmp (Buf , "5.6") == 0) - os_id_ = ACE_OS_SUN_56; - else if (ACE_OS::strcasecmp (Buf , "5.7") == 0) - os_id_ = ACE_OS_SUN_57; - else if (ACE_OS::strcasecmp (Buf , "5.8") == 0) - os_id_ = ACE_OS_SUN_58; -#elif defined(__OpenBSD) +#if defined(__OpenBSD) os_id_ = ACE_OS_OPENBSD; // set family // do the same @@ -1856,21 +1836,6 @@ ACE_POSIX_SIG_Proactor::handle_events_i (const ACE_Time_Value *timeout) #else index = static_cast<size_t> (sig_info.si_value.sival_int); #endif /* ACE_HAS_SIGVAL_SIGVAL_INT */ - // Assume we have a correctly-functioning implementation, and that - // there is one I/O to process, and it's correctly specified in the - // siginfo received. There are, however, some special situations - // where this isn't true... - if (os_id_ == ACE_OS_SUN_56) // Solaris 6 - { - // 1. Solaris 6 always loses any RT signal, - // if it has more SIGQUEMAX=32 pending signals - // so we should scan the whole aiocb list - // 2. Moreover,it has one more bad habit - // to notify aio completion - // with SI_QUEUE code instead of SI_ASYNCIO, hence the - // OS_SUN_56 addition to the si_code check, above. - count = aiocb_list_max_size_; - } } else if (sig_info.si_code != SI_QUEUE) { diff --git a/ACE/ace/POSIX_Proactor.h b/ACE/ace/POSIX_Proactor.h index 884ca481448..71e75e54d53 100644 --- a/ACE/ace/POSIX_Proactor.h +++ b/ACE/ace/POSIX_Proactor.h @@ -78,11 +78,6 @@ public: ACE_OS_WIN = 0x0100, // for future ACE_OS_WIN_NT = ACE_OS_WIN | 0x0001, ACE_OS_WIN_2000 = ACE_OS_WIN | 0x0002, - ACE_OS_SUN = 0x0200, // Sun Solaris family - ACE_OS_SUN_55 = ACE_OS_SUN | 0x0001, - ACE_OS_SUN_56 = ACE_OS_SUN | 0x0002, - ACE_OS_SUN_57 = ACE_OS_SUN | 0x0004, - ACE_OS_SUN_58 = ACE_OS_SUN | 0x0008, ACE_OS_LINUX = 0x0800, // Linux family ACE_OS_FREEBSD = 0x1000, // FreeBSD family ACE_OS_IRIX = 0x2000, // SGI IRIX family diff --git a/ACE/ace/README b/ACE/ace/README index b4268012d18..03d5d46cba3 100644 --- a/ACE/ace/README +++ b/ACE/ace/README @@ -20,9 +20,6 @@ ACE_HAS_DUMP Used to enable the dump() out in order to reduce footprint. By default, it is not defined. -ACE_CAST_CONST Used to work around broken - SunCC ANSI casts that require - an extra const. ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES Win32 only. Users want to use a predefined security @@ -148,7 +145,6 @@ ACE_THREAD_MANAGER_USES_SAFE_SPAWN Disable the "check before lock" feature on platforms with aggressive read/write reordering. ACE_HAS_CPU_SET_T Platform delivers cpu_set_t. -ACE_HAS_PRIOCNTL OS has priocntl (2). ACE_HAS_RECURSIVE_MUTEXES Mutexes are inherently recursive (e.g., Win32) ACE_HAS_NONRECURSIVE_MUTEXES In addition to recursive mutexes, @@ -349,8 +345,7 @@ ACE_HAS_NONCONST_SWAB Platform's swab function has non const src argument ACE_HAS_NONCONST_WRITEV Platform omits const qualifier from iovec parameter in writev() prototype. -ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5, - only supports SCHED_OTHER +ACE_HAS_ONLY_SCHED_OTHER Platform, only supports SCHED_OTHER POSIX scheduling policy. ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R Uses ctime_r & asctime_r with only two parameters @@ -376,7 +371,7 @@ ACE_HAS_POSIX_REALTIME_SIGNALS Platform supports POSIX RT signals. constant in <unistd.h>. ACE_HAS_POSIX_SEM Platform supports POSIX real-time semaphores (e.g., - VxWorks and Solaris). Corresponds + VxWorks). Corresponds to _POSIX_SEMAPHORES constant in <unistd.h> ACE_HAS_POSIX_SEM_TIMEOUT Platform supports timed wait operation @@ -469,8 +464,6 @@ ACE_HAS_SOCK_BUF_SIZE_MAX Platform limits the maximum socket message size. ACE_HAS_SSIZE_T Compiler supports the ssize_t typedef -ACE_HAS_STHREADS Platform supports Solaris - threads ACE_HAS_STRBUF_T Compiler/platform supports struct strbuf ACE_HAS_STRDUP_EMULATION Use ACE's strdup() emulation (even @@ -494,12 +487,6 @@ ACE_HAS_SVR4_GETTIMEOFDAY Compiler/platform supports SVR4 gettimeofday() prototype ACE_HAS_SVR4_SIGNAL_T Compiler/platform supports SVR4 signal typedef -ACE_HAS_SVR4_TLI Compiler/platform supports - SVR4 TLI; that is, TLI with extensions - like t_getname(). This is sometimes - used as a pseudonym for TLI on SunOS4. - This is a modifier to ACE_HAS_TLI and - isn't used if ACE_HAS_XTI is set. ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall for GETRUSAGE... ACE_HAS_SYSENT_H Platform provides <sysent.h> @@ -871,17 +858,6 @@ ACE_LACKS_TELLDIR Platform uses ACE_HAS_DIRENT ACE_LACKS_THREAD_STACK_SIZE Platform lacks pthread_attr_setstacksize() (e.g., Linux pthreads) -ACE_LACKS_THR_CONCURRENCY_FUNCS (ONLY APPLIES TO SOLARIS) - Platform does not support - thr_getconcurrency/thr_setconcurrency - functions, or their implementation - is effectively a "no-op". This - notably applies for Solaris >= 5.9. - Note that if you build on Solaris 8 - and run on Solaris 9+, you can - encounter thread creation errors - unless you rebuild on the target - platform. ACE_LACKS_TIMEDWAIT_PROTOTYPES MIT pthreads platform lacks the timedwait prototypes ACE_LACKS_TIMESPEC_T Platform does not define @@ -1274,19 +1250,6 @@ ACE_HAS_SVR4_SIGNAL_T: #endif /* ACE_HAS_SVR4_SIGNAL_T */ -ACE_HAS_SVR4_TLI: ------------------ - - Used in: - libsrc/IPC_SAP/TLI_SAP/TLI.C - libsrc/IPC_SAP/TLI_SAP/TLI.h - libsrc/IPC_SAP/TLI_SAP/TLI_Stream.C - - Notes: - TLI is the transport layer calls as in: t_bind(), t_open(), t_unbind(), - t_optmgmt(), ... in SunOS and Solaris. - - ACE_HAS_SYS_FILIO_H: -------------------- diff --git a/ACE/ace/SSL/SSL_Context.h b/ACE/ace/SSL/SSL_Context.h index 97eae945e62..91903f788c3 100644 --- a/ACE/ace/SSL/SSL_Context.h +++ b/ACE/ace/SSL/SSL_Context.h @@ -57,7 +57,7 @@ private: // **************************************************************** -// NOTE: Solaris studio compilers amongst others will issue warnings if the +// NOTE: Some compilers will issue warnings if the // the correct type of function pointer (i.e. extern "C" ) is not stored/used // of the form: // Warning (Anachronism): Formal argument callback of type diff --git a/ACE/ace/SUN_Proactor.cpp b/ACE/ace/SUN_Proactor.cpp deleted file mode 100644 index 6caf2858d67..00000000000 --- a/ACE/ace/SUN_Proactor.cpp +++ /dev/null @@ -1,314 +0,0 @@ -#include "ace/SUN_Proactor.h" - -#if defined (ACE_HAS_AIO_CALLS) && defined (sun) - -#include "ace/Task_T.h" -#include "ace/Log_Category.h" -#include "ace/Object_Manager.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_SUN_Proactor::ACE_SUN_Proactor (size_t max_aio_operations) - : ACE_POSIX_AIOCB_Proactor (max_aio_operations, - ACE_POSIX_Proactor::PROACTOR_SUN), - condition_ (mutex_) -{ - // To provide correct virtual calls. - create_notify_manager (); - - // we should start pseudo-asynchronous accept task - // one per all future acceptors - - this->get_asynch_pseudo_task ().start (); -} - -// Destructor. -ACE_SUN_Proactor::~ACE_SUN_Proactor () -{ - this->close (); -} - -int -ACE_SUN_Proactor::handle_events (ACE_Time_Value &wait_time) -{ - // Decrement <wait_time> with the amount of time spent in the method - ACE_Countdown_Time countdown (&wait_time); - return this->handle_events_i (&wait_time); -} - -int -ACE_SUN_Proactor::handle_events () -{ - return this->handle_events_i (0); -} - -int ACE_SUN_Proactor::wait_for_start (ACE_Time_Value * abstime) -{ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1)); - - if (this->num_started_aio_ != 0) // double check - return 0; - - return this->condition_.wait (abstime); - -#else - - return 0; // or -1 ??? - -#endif /* ACE_MT_SAFE */ -} - -int -ACE_SUN_Proactor::handle_events_i (ACE_Time_Value *delta) -{ - int retval = 0; - aio_result_t *result = 0; - - if (0 == delta) - { - if (this->num_started_aio_ == 0) - this->wait_for_start (0); - - result = aiowait (0); - } - else - { - if (this->num_started_aio_ == 0) - { - // Decrement delta with the amount of time spent waiting - ACE_Countdown_Time countdown (delta); - ACE_Time_Value tv (*delta); - tv += ACE_OS::gettimeofday (); - if (this->wait_for_start (&tv) == -1) - return -1; - } - struct timeval delta_tv = *delta; - result = aiowait (&delta_tv); - } - - if (result == 0) - { - // timeout, do nothing, - // we should process "post_completed" queue - } - else if (reinterpret_cast<long> (result) == -1) - { - // Check errno for EINVAL,EAGAIN,EINTR ?? - switch (errno) - { - case EINTR : // aiowait() was interrupted by a signal. - case EINVAL: // there are no outstanding asynchronous I/O requests. - break; // we should process "post_completed" queue - - default: // EFAULT - ACELIB_ERROR_RETURN ((LM_ERROR, - ACE_TEXT("%N:%l:(%P | %t)::%p \nNumAIO=%d\n"), - ACE_TEXT("ACE_SUN_Proactor::handle_events: aiowait failed"), - num_started_aio_), - -1); - } - } - else - { - int error_status = 0; - size_t transfer_count = 0; - - ACE_POSIX_Asynch_Result *asynch_result = - find_completed_aio (result, - error_status, - transfer_count); - - if (asynch_result != 0) - { - // Call the application code. - this->application_specific_code (asynch_result, - transfer_count, - 0, // No completion key. - error_status); // Error - retval++; - } - } - - // process post_completed results - retval += this->process_result_queue (); - - return retval > 0 ? 1 : 0 ; -} - -int -ACE_SUN_Proactor::get_result_status (ACE_POSIX_Asynch_Result* asynch_result, - int &error_status, - size_t &transfer_count) -{ - // Get the error status of the aio_ operation. - error_status = asynch_result->aio_resultp.aio_errno; - ssize_t op_return = asynch_result->aio_resultp.aio_return; - - // ****** from Sun man pages ********************* - // Upon completion of the operation both aio_return and aio_errno - // are set to reflect the result of the operation. - // AIO_INPROGRESS is not a value used by the system - // so the client may detect a change in state - // by initializing aio_return to this value. - - if (error_status == EINPROGRESS || op_return == AIO_INPROGRESS) - return 0; // not completed - - if (op_return < 0) - transfer_count = 0; // zero bytes transferred - else - transfer_count = static_cast<size_t> (op_return); - - return 1; // completed -} - -ACE_POSIX_Asynch_Result * -ACE_SUN_Proactor::find_completed_aio (aio_result_t *result, - int &error_status, - size_t &transfer_count) -{ - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, 0)); - - size_t ai; - error_status = -1; - transfer_count = 0; - - // we call find_completed_aio always with result != 0 - - for (ai = 0; ai < aiocb_list_max_size_; ai++) - if (aiocb_list_[ai] != 0 && //check for non zero - result == &aiocb_list_[ai]->aio_resultp) - break; - - if (ai >= aiocb_list_max_size_) // not found - return 0; // means somebody else uses aio directly!!! - - ACE_POSIX_Asynch_Result *asynch_result = result_list_[ai]; - - if (this->get_result_status (asynch_result, - error_status, - transfer_count) == 0) - { // should never be - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT("%N:%l:(%P | %t)::%p\n"), - ACE_TEXT("ACE_SUN_Proactor::find_completed_aio:") - ACE_TEXT("should never be !!!\n"))); - return 0; - } - - aiocb_list_[ai] = 0; - result_list_[ai] = 0; - aiocb_list_cur_size_--; - - num_started_aio_--; - - start_deferred_aio (); - //make attempt to start deferred AIO - //It is safe as we are protected by mutex_ - - return asynch_result; -} - -// start_aio_i has new return codes -// 0 successful start -// 1 try later, OS queue overflow -// -1 invalid request and other errors - -int -ACE_SUN_Proactor::start_aio_i (ACE_POSIX_Asynch_Result *result) -{ - ACE_TRACE ("ACE_SUN_Proactor::start_aio_i"); - - int ret_val; - const ACE_TCHAR *ptype; - - // ****** from Sun man pages ********************* - // Upon completion of the operation both aio_return and aio_errno - // are set to reflect the result of the operation. - // AIO_INPROGRESS is not a value used by the system - // so the client may detect a change in state - // by initializing aio_return to this value. - result->aio_resultp.aio_return = AIO_INPROGRESS; - result->aio_resultp.aio_errno = EINPROGRESS; - - // Start IO - switch (result->aio_lio_opcode) - { - case LIO_READ : - ptype = ACE_TEXT ("read"); - ret_val = aioread (result->aio_fildes, - (char *) result->aio_buf, - result->aio_nbytes, - result->aio_offset, - SEEK_SET, - &result->aio_resultp); - break; - - case LIO_WRITE : - ptype = ACE_TEXT ("write"); - ret_val = aiowrite (result->aio_fildes, - (char *) result->aio_buf, - result->aio_nbytes, - result->aio_offset, - SEEK_SET, - &result->aio_resultp); - break; - - default: - ptype = ACE_TEXT ("?????"); - ret_val = -1; - break; - } - - if (ret_val == 0) - { - this->num_started_aio_++; - if (this->num_started_aio_ == 1) // wake up condition - this->condition_.broadcast (); - } - else // if (ret_val == -1) - { - if (errno == EAGAIN || errno == ENOMEM) // Defer - retry this later. - ret_val = 1; - else - ACELIB_ERROR ((LM_ERROR, - ACE_TEXT ("%N:%l:(%P | %t)::start_aio: aio%s %p\n"), - ptype, - ACE_TEXT ("queueing failed\n"))); - } - - return ret_val; -} - -int -ACE_SUN_Proactor::cancel_aiocb (ACE_POSIX_Asynch_Result *result) -{ - ACE_TRACE ("ACE_SUN_Proactor::cancel_aiocb"); - int rc = ::aiocancel (&result->aio_resultp); - if (rc == 0) // AIO_CANCELED - { - // after aiocancel Sun does not notify us - // so we should send notification - // to save POSIX behavoir. - // Also we should do this for deffered aio's - - result->set_error (ECANCELED); - result->set_bytes_transferred (0); - this->putq_result (result); - return 0; - } - - return 2; -} - -ACE_POSIX_Proactor::Proactor_Type -ACE_SUN_Proactor::get_impl_type () -{ - return PROACTOR_SUN; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_AIO_CALLS && sun */ diff --git a/ACE/ace/SUN_Proactor.h b/ACE/ace/SUN_Proactor.h deleted file mode 100644 index 376a9cdf60a..00000000000 --- a/ACE/ace/SUN_Proactor.h +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file SUN_Proactor.h - * - * @author Alexander Libman <alibman@baltimore.com> - */ -//============================================================================= - -#ifndef ACE_SUN_PROACTOR_H -#define ACE_SUN_PROACTOR_H - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_AIO_CALLS) && defined (sun) - -#include "ace/POSIX_Proactor.h" -#include /**/ <sys/asynch.h> // Sun native aio calls - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_SUN_Proactor - * - * @brief Implementation of the fast and reliable Proactor - * for SunOS 5.6, 5.7, etc. - * - * This proactor, based on ACE_POSIX_AIOCB_Proactor, - * works with Sun native interface for aio calls. - * POSIX_API Native SUN_API - * aio_read aioread - * aio_write aiowrite - * aio_suspend aiowait - * aio_error aio_result_t.errno - * aio_return aio_result_t.return - * On Solaris, the Sun <aio*()> native implementation is more - * reliable and efficient than POSIX <aio_*()> implementation. - * There is a problem of lost RT signals with POSIX, if we start - * more than SIGQUEUEMAX asynchronous operations at the same - * time. - * The Sun <aiocb> it is not the standard POSX <aiocb>, instead, - * it has the following structure: - * typedef struct aiocb - * { - * int aio_fildes; File descriptor - * void *aio_buf; buffer location - * size_t aio_nbytes; length of transfer - * off_t aio_offset; file offset - * int aio_reqprio; request priority offset - * sigevent aio_sigevent; signal number and offset - * int aio_lio_opcode; listio operation - * aio_result_t aio_resultp; results - * int aio_state; state flag for List I/O - * int aio__pad[1]; extension padding - * }; - */ -class ACE_Export ACE_SUN_Proactor : public ACE_POSIX_AIOCB_Proactor -{ -public: - virtual Proactor_Type get_impl_type (); - - /// Destructor. - virtual ~ACE_SUN_Proactor (); - - /// Constructor defines max number asynchronous operations that can - /// be started at the same time. - ACE_SUN_Proactor (size_t max_aio_operations = ACE_AIO_DEFAULT_SIZE); - -protected: - /** - * Dispatch a single set of events. If @a wait_time elapses before - * any events occur, return 0. Return 1 on success i.e., when a - * completion is dispatched, non-zero (-1) on errors and errno is - * set accordingly. - */ - virtual int handle_events (ACE_Time_Value &wait_time); - - /** - * Block indefinitely until at least one event is dispatched. - * Dispatch a single set of events. Return 1 on success i.e., when a - * completion is dispatched, non-zero (-1) on errors and errno is - * set accordingly. - */ - virtual int handle_events (); - - /// Internal completion detection and dispatching. - int handle_events_i (ACE_Time_Value *delta); - - /// Initiate an aio operation. - virtual int start_aio_i (ACE_POSIX_Asynch_Result *result); - - /// Check AIO for completion, error and result status - /// Return: 1 - AIO completed , 0 - not completed yet - virtual int get_result_status (ACE_POSIX_Asynch_Result* asynch_result, - int &error_status, - size_t &transfer_count); - - /// Extract the results of aio. - ACE_POSIX_Asynch_Result *find_completed_aio (aio_result_t *result, - int &error_status, - size_t &transfer_count); - - /// From ACE_POSIX_AIOCB_Proactor. - /// Attempt to cancel running request - virtual int cancel_aiocb (ACE_POSIX_Asynch_Result *result); - - /// Specific Sun aiowait - int wait_for_start (ACE_Time_Value * abstime); - - /// Condition variable . - /// used to wait the first AIO start - ACE_SYNCH_CONDITION condition_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_AIO_CALLS && sun */ -#endif /* ACE_SUN_PROACTOR_H*/ diff --git a/ACE/ace/Sched_Params.cpp b/ACE/ace/Sched_Params.cpp index 3c5b3eaa121..409e7120ac5 100644 --- a/ACE/ace/Sched_Params.cpp +++ b/ACE/ace/Sched_Params.cpp @@ -13,73 +13,13 @@ #include "ace/Sched_Params.inl" #endif /* __ACE_INLINE__ */ -#if defined (ACE_HAS_PRIOCNTL) && defined (ACE_HAS_STHREADS) -# include "ace/OS_NS_string.h" -# include /**/ <sys/priocntl.h> -#endif /* ACE_HAS_PRIOCNTL && ACE_HAS_THREADS */ - ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE_Sched_Params::priority_min (const Policy policy, const int scope) { -#if defined (ACE_HAS_PRIOCNTL) && defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (scope); - - // Assume that ACE_SCHED_OTHER indicates TS class, and that other - // policies indicate RT class. - - // Call ACE_OS::priority_control only for processes (lightweight - // or otherwise). Calling ACE_OS::priority_control for thread - // priorities gives incorrect results. - if (scope == ACE_SCOPE_PROCESS || scope == ACE_SCOPE_LWP) - { - if (policy == ACE_SCHED_OTHER) - { - // Get the priority class ID and attributes. - pcinfo_t pcinfo; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&pcinfo, 0, sizeof pcinfo); - ACE_OS::strcpy (pcinfo.pc_clname, "TS"); - - if (ACE_OS::priority_control (P_ALL /* ignored */, - P_MYID /* ignored */, - PC_GETCID, - (char *) &pcinfo) == -1) - // Just hope that priority range wasn't configured from -1 - // .. 1 - return -1; - - // OK, now we've got the class ID in pcinfo.pc_cid. In - // addition, the maximum configured time-share priority is in - // ((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri. The minimum - // priority is just the negative of that. - - return -((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri; - } - else - return 0; - } - else - { - // Here we handle the case for ACE_SCOPE_THREAD. Calling - // ACE_OS::priority_control for thread scope gives incorrect - // results. - switch (policy) - { - case ACE_SCHED_FIFO: - return ACE_THR_PRI_FIFO_MIN; - case ACE_SCHED_RR: - return ACE_THR_PRI_RR_MIN; - case ACE_SCHED_OTHER: - default: - return ACE_THR_PRI_OTHER_MIN; - } - } -#elif defined(ACE_HAS_PTHREADS) && \ - (!defined(ACE_LACKS_SETSCHED)) +#if defined(ACE_HAS_PTHREADS) && !defined(ACE_LACKS_SETSCHED) switch (scope) { case ACE_SCOPE_THREAD: @@ -124,63 +64,14 @@ ACE_Sched_Params::priority_min (const Policy policy, ACE_UNUSED_ARG (policy); ACE_UNUSED_ARG (scope); ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_PRIOCNTL && defined (ACE_HAS_STHREADS) */ +#endif /* ACE_HAS_PTHREADS */ } int ACE_Sched_Params::priority_max (const Policy policy, const int scope) { -#if defined (ACE_HAS_PRIOCNTL) && defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (scope); - - // Call ACE_OS::priority_control only for processes (lightweight - // or otherwise). Calling ACE_OS::priority_control for thread - // priorities gives incorrect results. - if (scope == ACE_SCOPE_PROCESS || scope == ACE_SCOPE_LWP) - { - // Assume that ACE_SCHED_OTHER indicates TS class, and that other - // policies indicate RT class. - - // Get the priority class ID and attributes. - pcinfo_t pcinfo; - // The following is just to avoid Purify warnings about unitialized - // memory reads. - ACE_OS::memset (&pcinfo, 0, sizeof pcinfo); - ACE_OS::strcpy (pcinfo.pc_clname, - policy == ACE_SCHED_OTHER ? "TS" : "RT"); - - if (ACE_OS::priority_control (P_ALL /* ignored */, - P_MYID /* ignored */, - PC_GETCID, - (char *) &pcinfo) == -1) - return -1; - - // OK, now we've got the class ID in pcinfo.pc_cid. In addition, - // the maximum configured real-time priority is in ((rtinfo_t *) - // pcinfo.pc_clinfo)->rt_maxpri, or similarly for the TS class. - - return policy == ACE_SCHED_OTHER - ? ((tsinfo_t *) pcinfo.pc_clinfo)->ts_maxupri - : ((rtinfo_t *) pcinfo.pc_clinfo)->rt_maxpri; - } - else - { - // Here we handle the case for ACE_SCOPE_THREAD. Calling - // ACE_OS::priority_control for thread scope gives incorrect - // results. - switch (policy) - { - case ACE_SCHED_FIFO: - return ACE_THR_PRI_FIFO_MAX; - case ACE_SCHED_RR: - return ACE_THR_PRI_RR_MAX; - case ACE_SCHED_OTHER: - default: - return ACE_THR_PRI_OTHER_MAX; - } - } -#elif defined(ACE_HAS_PTHREADS) && \ +#if defined(ACE_HAS_PTHREADS) && \ (!defined(ACE_LACKS_SETSCHED) || \ defined (ACE_HAS_PTHREAD_SCHEDPARAM)) @@ -228,7 +119,7 @@ ACE_Sched_Params::priority_max (const Policy policy, ACE_UNUSED_ARG (policy); ACE_UNUSED_ARG (scope); ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_PRIOCNTL && defined (ACE_HAS_STHREADS) */ +#endif /* ACE_HAS_PTHREADS */ } int diff --git a/ACE/ace/Sched_Params.h b/ACE/ace/Sched_Params.h index 7ca200bbf46..5058f17e60a 100644 --- a/ACE/ace/Sched_Params.h +++ b/ACE/ace/Sched_Params.h @@ -36,10 +36,9 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * (ACE_SCHED_OTHER), to which many systems default; priority; * and a time-slice quantum for round-robin scheduling. A * "scope" parameter specifies whether the ACE_Sched_Params - * applies to the current process, current lightweight process - * (LWP) (on Solaris), or current thread. Please see the "NOTE" - * below about not all combinations of parameters being legal on - * a particular platform. + * applies to the current process, or current thread. Please + * see the "NOTE" below about not all combinations of parameters + * being legal on a particular platform. * For the case of thread priorities, it is intended that * <ACE_OS::sched_params> usually be called from <main> before * any threads have been spawned. If spawned threads inherit @@ -57,11 +56,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL */ class ACE_Export ACE_Sched_Params { - // NOTE: Solaris 2.5.x threads in the RT class must set the - // priority of their LWP. The only way to do that through ACE is - // for the RT thread itself to call <ACE_OS::thr_setprio> with - // it's own priority. - // OS Scheduling parameters are complicated and often confusing. // Many thanks to Thilo Kielmann // <kielmann@informatik.uni-siegen.de> for his careful review of @@ -142,8 +136,6 @@ private: * process, and the process priority. On some platforms, * such as Win32, the scheduling policy can _only_ be * set at process scope. - * ACE_SCOPE_LWP: lightweight process scope, only used with - * Solaris threads. * ACE_SCOPE_THREAD: sets the scheduling policy for the thread, * if the OS supports it, such as with Posix threads, and the * thread priority. diff --git a/ACE/ace/Semaphore.h b/ACE/ace/Semaphore.h index fc46aac8a64..a0c6f964dd6 100644 --- a/ACE/ace/Semaphore.h +++ b/ACE/ace/Semaphore.h @@ -60,13 +60,6 @@ public: * is assumed to be in "absolute" rather than "relative" time. The * value of @a tv is updated upon return to show the actual * (absolute) acquisition time. - * - * @note Solaris threads do not support timed semaphores. - * Therefore, if you're running on Solaris you might want to - * consider using the ACE POSIX pthreads implementation instead, - * which can be enabled by compiling ACE with - * -DACE_HAS_PTHREADS, rather than -DACE_HAS_STHREADS or - * -DACE_HAS_POSIX_SEM. */ int acquire (ACE_Time_Value &tv); @@ -78,13 +71,7 @@ public: * <*tv> is assumed to be in "absolute" rather than "relative" time. * The value of <*tv> is updated upon return to show the actual * (absolute) acquisition time. - * - * @note Solaris threads do not support timed semaphores. - * Therefore, if you're running on Solaris you might want to - * consider using the ACE POSIX pthreads implementation instead, - * which can be enabled by compiling ACE with - * -DACE_HAS_PTHREADS, rather than -DACE_HAS_STHREADS or - * -DACE_HAS_POSIX_SEM. */ + */ int acquire (ACE_Time_Value *tv); /** diff --git a/ACE/ace/Sock_Connect.cpp b/ACE/ace/Sock_Connect.cpp index ba2e255e3cf..37e8ea1a339 100644 --- a/ACE/ace/Sock_Connect.cpp +++ b/ACE/ace/Sock_Connect.cpp @@ -7,11 +7,6 @@ #include "ace/OS_Memory.h" #include "ace/OS_NS_stdio.h" #include "ace/ACE.h" - -#if defined (sparc) -# include "ace/OS_NS_fcntl.h" -#endif // sparc - #include "ace/OS_NS_stdlib.h" #include "ace/OS_NS_string.h" #include "ace/OS_NS_sys_socket.h" @@ -1062,22 +1057,17 @@ return 0; } // Routine to return a handle from which ioctl() requests can be made. - ACE_HANDLE ACE::get_handle () { - // Solaris 2.x ACE_HANDLE handle = ACE_INVALID_HANDLE; -#if defined (sparc) - handle = ACE_OS::open ("/dev/udp", O_RDONLY); -#elif defined (__unix) || defined (__unix__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)) +#if defined (__unix) || defined (__unix__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)) // Note: DEC CXX doesn't define "unix" BSD compatible OS: SunOS 4.x handle = ACE_OS::socket (PF_INET, SOCK_DGRAM, 0); -#endif /* sparc */ +#endif /* __unux */ return handle; } - #if defined (ACE_HAS_IPV6) static int ip_check (int &ipvn_enabled, int pf) diff --git a/ACE/ace/Stack_Trace.cpp b/ACE/ace/Stack_Trace.cpp index dd1f0efa535..880575137b6 100644 --- a/ACE/ace/Stack_Trace.cpp +++ b/ACE/ace/Stack_Trace.cpp @@ -10,9 +10,6 @@ * and is adapted from examples shown in relevant documentation * and repeated elsewhere, e.g., * http://www.linuxselfhelp.com/gnu/glibc/html_chapter/libc_33.html - * - the Solaris stack generation is adapted from a 1995 post on - * comp.unix.solaris by Bart Smaalders, - * http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/8b9f3de8be288f1c/31550f93a48231d5?lnk=gst&q=how+to+get+stack+trace+on+solaris+group:comp.unix.solaris#31550f93a48231d5 * - VxWorks kernel-mode stack tracing is adapted from a code example * in the VxWorks FAQ at http://www.xs4all.nl/~borkhuis/vxworks/vxw_pt5.html * although the undocumented functions it uses are also mentioned in @@ -315,16 +312,6 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset, # include <sys/frame.h> # define ACE_STACK_TRACE_BIAS 0 -# if defined(sparc) || defined(__sparc) -# define ACE_STACK_TRACE_FLUSHWIN() asm("ta 3"); -# define ACE_STACK_TRACE_FRAME_PTR_INDEX 1 -# define ACE_STACK_TRACE_SKIP_FRAMES 0 -# if defined(__sparcv9) -# undef ACE_STACK_TRACE_BIAS -# define ACE_STACK_TRACE_BIAS 2047 -# endif -# endif - # if defined(i386) || defined(__i386) # define ACE_STACK_TRACE_FLUSHWIN() # define ACE_STACK_TRACE_FRAME_PTR_INDEX 3 diff --git a/ACE/ace/Stack_Trace.h b/ACE/ace/Stack_Trace.h index dce77355f45..476319e22cc 100644 --- a/ACE/ace/Stack_Trace.h +++ b/ACE/ace/Stack_Trace.h @@ -52,7 +52,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * - Any platform using glibc as its runtime library, or where ACE_HAS_EXECINFO_H is defined * (this covers Linux and Mac) and gcc version >= 3.3. * - VxWorks, both kernel and RTP - * - Solaris * - Windows 32 and 64 bit (Visual C++) * * @note Since stack trace buffer size has limitation(@c ACE_STACK_TRACE_SYMBUFSIZ), you will not diff --git a/ACE/ace/TLI.cpp b/ACE/ace/TLI.cpp index 1aeafeeb68a..d0fbd289f3c 100644 --- a/ACE/ace/TLI.cpp +++ b/ACE/ace/TLI.cpp @@ -30,25 +30,6 @@ ACE_TLI::dump () const ACE_TLI::ACE_TLI () { ACE_TRACE ("ACE_TLI::ACE_TLI"); -#if defined (ACE_HAS_SVR4_TLI) -// Solaris 2.4 ACE_TLI option handling is broken. Thus, we must do -// the memory allocation ourselves... Thanks to John P. Hearn -// (jph@ccrl.nj.nec.com) for the help. - - this->so_opt_req.opt.maxlen = sizeof (opthdr) + sizeof (long); - ACE_NEW (this->so_opt_req.opt.buf, - char[this->so_opt_req.opt.maxlen]); - - this->so_opt_ret.opt.maxlen = sizeof (opthdr) + sizeof (long); - ACE_NEW (this->so_opt_ret.opt.buf, - char[this->so_opt_ret.opt.maxlen]); - - if (this->so_opt_ret.opt.buf == 0) - { - delete [] this->so_opt_req.opt.buf; - this->so_opt_req.opt.buf = 0; - } -#endif /* ACE_HAS_SVR4_TLI */ } ACE_HANDLE @@ -65,15 +46,6 @@ ACE_TLI::open (const char device[], int oflag, struct t_info *info) ACE_TLI::~ACE_TLI () { ACE_TRACE ("ACE_TLI::~ACE_TLI"); -#if defined (ACE_HAS_SVR4_TLI) - if (this->so_opt_req.opt.buf) - { - delete [] this->so_opt_req.opt.buf; - delete [] this->so_opt_ret.opt.buf; - this->so_opt_req.opt.buf = 0; - this->so_opt_ret.opt.buf = 0; - } -#endif /* ACE_HAS_SVR4_TLI */ } ACE_TLI::ACE_TLI (const char device[], int oflag, struct t_info *info) @@ -147,35 +119,13 @@ ACE_TLI::set_option (int level, int option, void *optval, int optlen) opthdr->len = req.opt.len; // We only request one option at a time. ACE_OS::memcpy (&opthdr[1], optval, optlen); return ACE_OS::t_optmgmt (this->get_handle (), &req, &ret); - -#elif defined (ACE_HAS_SVR4_TLI) - struct opthdr *opthdr = 0; /* See <sys/socket.h> for info on this format */ - - this->so_opt_req.flags = T_NEGOTIATE; - this->so_opt_req.opt.len = sizeof *opthdr + OPTLEN (optlen); - - if (this->so_opt_req.opt.len > this->so_opt_req.opt.maxlen) - { - t_errno = TBUFOVFLW; - return -1; - } - - opthdr = reinterpret_cast<struct opthdr *> (this->so_opt_req.opt.buf); - opthdr->level = level; - opthdr->name = option; - opthdr->len = OPTLEN (optlen); - ACE_OS::memcpy (OPTVAL (opthdr), optval, optlen); - - return ACE_OS::t_optmgmt (this->get_handle (), - &this->so_opt_req, - &this->so_opt_ret); #else ACE_UNUSED_ARG (level); ACE_UNUSED_ARG (option); ACE_UNUSED_ARG (optval); ACE_UNUSED_ARG (optlen); return -1; -#endif /* ACE_HAS_XTI, else ACE_HAS_SVR4_TLI */ +#endif /* ACE_HAS_XTI */ } int @@ -222,37 +172,13 @@ ACE_TLI::get_option (int level, int option, void *optval, int &optlen) return 0; } } - -#elif defined (ACE_HAS_SVR4_TLI) - struct opthdr *opthdr = 0; /* See <sys/socket.h> for details on this format */ - - this->so_opt_req.flags = T_CHECK; - this->so_opt_ret.opt.len = sizeof *opthdr + OPTLEN (optlen); - - if (this->so_opt_ret.opt.len > this->so_opt_ret.opt.maxlen) - { - t_errno = TBUFOVFLW; - return -1; - } - - opthdr = (struct opthdr *) this->so_opt_req.opt.buf; - opthdr->level = level; - opthdr->name = option; - opthdr->len = OPTLEN (optlen); - if (ACE_OS::t_optmgmt (this->get_handle (), &this->so_opt_req, &this->so_opt_ret) == -1) - return -1; - else - { - ACE_OS::memcpy (optval, OPTVAL (opthdr), optlen); - return 0; - } #else ACE_UNUSED_ARG (level); ACE_UNUSED_ARG (option); ACE_UNUSED_ARG (optval); ACE_UNUSED_ARG (optlen); return -1; -#endif /* ACE_HAS_SVR4_TLI */ +#endif /* ACE_HAS_XTI */ } ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/TLI.h b/ACE/ace/TLI.h index bfa0e19584c..006b3a95a51 100644 --- a/ACE/ace/TLI.h +++ b/ACE/ace/TLI.h @@ -93,13 +93,6 @@ protected: /// Initialize a TLI endpoint. ACE_TLI (const char device[], int oflag = O_RDWR, struct t_info *info = 0); - -private: -#if defined (ACE_HAS_SVR4_TLI) - // XTI/TLI option management. - struct t_optmgmt so_opt_req; - struct t_optmgmt so_opt_ret; -#endif /* ACE_HAS_SVR4_TLI */ }; ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/TLI_Connector.cpp b/ACE/ace/TLI_Connector.cpp index c8781000a78..5a8fe11bd0c 100644 --- a/ACE/ace/TLI_Connector.cpp +++ b/ACE/ace/TLI_Connector.cpp @@ -221,7 +221,7 @@ ACE_TLI_Connector::complete (ACE_TLI_Stream &new_stream, { if (remote_sap != 0) { -#if defined (ACE_HAS_XTI) || defined (ACE_HAS_SVR4_TLI) +#if defined (ACE_HAS_XTI) struct netbuf name; name.maxlen = remote_sap->get_size (); @@ -230,9 +230,9 @@ ACE_TLI_Connector::complete (ACE_TLI_Stream &new_stream, if (ACE_OS::t_getname (new_stream.get_handle (), &name, REMOTENAME) == -1) -#else /* SunOS4 */ +#else /* ACE_HAS_XTI */ if (0) -#endif /* ACE_HAS_XTI || ACE_HAS_SVR4_TLI */ +#endif /* ACE_HAS_XTI */ { new_stream.close (); return -1; diff --git a/ACE/ace/Thread.h b/ACE/ace/Thread.h index 67a190dcc41..6e79266bb1c 100644 --- a/ACE/ace/Thread.h +++ b/ACE/ace/Thread.h @@ -40,7 +40,7 @@ struct cancel_state * @brief Provides a wrapper for threads. * * This class provides a common interface that is mapped onto - * POSIX Pthreads, Solaris threads, Win32 threads, VxWorks + * POSIX Pthreads, Win32 threads, VxWorks * threads, or pSoS threads. Note, however, that it is * generally a better idea to use the ACE_Thread_Manager * programming API rather than the <ACE_Thread> API since the @@ -152,7 +152,6 @@ public: * If @a thread_id is 0, join() waits for any * undetached thread in the process to terminate * on platforms that support this capability - * (for example, Solaris). * @param departed points to a location that is set to the ID of the * terminated thread if join() returns successfully. * If @a departed is 0, it is ignored. diff --git a/ACE/ace/Thread_Manager.inl b/ACE/ace/Thread_Manager.inl index c6c93f270ee..386e7f67711 100644 --- a/ACE/ace/Thread_Manager.inl +++ b/ACE/ace/Thread_Manager.inl @@ -162,7 +162,7 @@ ACE_INLINE ACE_Thread_Descriptor * ACE_Thread_Descriptor::get_next () const { ACE_TRACE ("ACE_Thread_Descriptor::get_next"); - return static_cast<ACE_Thread_Descriptor * ACE_CAST_CONST> (this->next_); + return static_cast<ACE_Thread_Descriptor *> (this->next_); } // Reset this thread descriptor diff --git a/ACE/ace/Thread_Mutex.h b/ACE/ace/Thread_Mutex.h index 3793c5654ed..54292b630c2 100644 --- a/ACE/ace/Thread_Mutex.h +++ b/ACE/ace/Thread_Mutex.h @@ -38,7 +38,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * in the same process. It maps to <CRITICAL_SECTION>s on NT * and <ACE_mutex_t> with <type> set to <USYNC_THREAD> on UNIX. * ACE_Thread_Mutex is recursive on some platforms (like - * Win32). However, on most platforms (like Solaris) it is not + * Win32). However, on most platforms it is not * recursive. To be totally safe and portable, developers * should use ACE_Recursive_Thread_Mutex when they need a * recursive mutex. diff --git a/ACE/ace/Timer_Queue_Adapters.cpp b/ACE/ace/Timer_Queue_Adapters.cpp index d69bfd24f27..f6c3857ca7e 100644 --- a/ACE/ace/Timer_Queue_Adapters.cpp +++ b/ACE/ace/Timer_Queue_Adapters.cpp @@ -233,11 +233,6 @@ ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::svc () this->thr_id_ = ACE_Thread::self (); // Thread cancellation point, if ACE supports it. - // - // Note: This call generates a warning under Solaris because the header - // file /usr/include/pthread.h redefines the routine argument. This - // is a bug in the Solaris header files and has nothing to do with - // ACE. # if !defined (ACE_LACKS_PTHREAD_CANCEL) ACE_PTHREAD_CLEANUP_PUSH (&this->condition_.mutex ().get_nesting_mutex ()); # endif /* ACE_LACKS_PTHREAD_CANCEL */ diff --git a/ACE/ace/Timer_Queue_T.cpp b/ACE/ace/Timer_Queue_T.cpp index 923cae1b7b8..52ed9ad9c80 100644 --- a/ACE/ace/Timer_Queue_T.cpp +++ b/ACE/ace/Timer_Queue_T.cpp @@ -21,8 +21,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL -// This fudge factor can be overriden for timers that need it, such as on -// Solaris, by defining the ACE_TIMER_SKEW symbol in the appropriate config +// This fudge factor can be overriden for timers that need it +// by defining the ACE_TIMER_SKEW symbol in the appropriate config // header. #if !defined (ACE_TIMER_SKEW) # define ACE_TIMER_SKEW 0 diff --git a/ACE/ace/Token.h b/ACE/ace/Token.h index 909c25c3cb5..4c3bcc80b5a 100644 --- a/ACE/ace/Token.h +++ b/ACE/ace/Token.h @@ -56,8 +56,8 @@ class ACE_Time_Value; * <acquire> multiple times, however, it must call <release> an * equal number of times before the token is actually released. * Threads that are blocked awaiting the token are serviced in - * strict FIFO/LIFO order as other threads release the token (Solaris - * and Pthread mutexes don't strictly enforce an acquisition + * strict FIFO/LIFO order as other threads release the token + * (Pthread mutexes don't strictly enforce an acquisition * order). There are two lists within the class. Write * acquires always have higher priority over read acquires. Which * means, if you use both write/read operations, care must be diff --git a/ACE/ace/ace.mpc b/ACE/ace/ace.mpc index df4d022fbdd..97e8b5fec64 100644 --- a/ACE/ace/ace.mpc +++ b/ACE/ace/ace.mpc @@ -24,7 +24,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf, ATM_QoS.cpp ATM_Stream.cpp Atomic_Op.cpp - Atomic_Op_Sparc.c Barrier.cpp Base_Thread_Adapter.cpp Based_Pointer_Repository.cpp @@ -244,7 +243,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf, Stack_Trace.cpp Stats.cpp String_Base_Const.cpp - SUN_Proactor.cpp SV_Message.cpp SV_Message_Queue.cpp SV_Semaphore_Complex.cpp diff --git a/ACE/ace/config-macosx-jaguar.h b/ACE/ace/config-macosx-jaguar.h index 76a0df0c9dd..fb8dfd775b9 100644 --- a/ACE/ace/config-macosx-jaguar.h +++ b/ACE/ace/config-macosx-jaguar.h @@ -25,8 +25,6 @@ #define ACE_HAS_GPERF #define ACE_HAS_POSIX_SEM -//#define ACE_HAS_SVR4_TLI - #define ACE_LACKS_STROPTS_H #define ACE_LACKS_WCHAR_H diff --git a/ACE/ace/config-macosx-panther.h b/ACE/ace/config-macosx-panther.h index d4ce6f41619..2eb6c3c68fd 100644 --- a/ACE/ace/config-macosx-panther.h +++ b/ACE/ace/config-macosx-panther.h @@ -26,8 +26,6 @@ #define ACE_HAS_GPERF #define ACE_HAS_POSIX_SEM -//#define ACE_HAS_SVR4_TLI - #define ACE_LACKS_STROPTS_H #define ACE_LACKS_WCHAR_H diff --git a/ACE/ace/config-macros.h b/ACE/ace/config-macros.h index bb67f3df98d..144e0283d98 100644 --- a/ACE/ace/config-macros.h +++ b/ACE/ace/config-macros.h @@ -84,7 +84,7 @@ // Perfect Multicast filtering refers to RFC 3376, where a socket is only // delivered dgrams for groups joined even if it didn't bind the group // address. We turn this option off by default, although most OS's -// except for Windows and Solaris probably lack perfect filtering. +// except for Windows probably lack perfect filtering. // ========================================================================= # if !defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING) @@ -233,17 +233,6 @@ # define ACE_sap_any_cast(TYPE) reinterpret_cast<TYPE> (const_cast<ACE_Addr &> (ACE_Addr::sap_any)) -# if !defined (ACE_CAST_CONST) - // Sun CC 4.2, for example, requires const in reinterpret casts of - // data members in const member functions. But, other compilers - // complain about the useless const. This keeps everyone happy. -# if defined (__SUNPRO_CC) -# define ACE_CAST_CONST const -# else /* ! __SUNPRO_CC */ -# define ACE_CAST_CONST -# endif /* ! __SUNPRO_CC */ -# endif /* ! ACE_CAST_CONST */ - // ============================================================================ // Compiler Silencing macros // diff --git a/ACE/ace/config-sunos5.10.h b/ACE/ace/config-sunos5.10.h index 94d87715332..28c85c877c1 100644 --- a/ACE/ace/config-sunos5.10.h +++ b/ACE/ace/config-sunos5.10.h @@ -57,6 +57,4 @@ # define ACE_HAS_VOID_PTR_SCTP_GETPADDRS #endif -#define ACE_HAS_SOLARIS_ATOMIC_LIB - #endif /* ACE_CONFIG_H */ diff --git a/ACE/ace/config-sunos5.4-g++.h b/ACE/ace/config-sunos5.4-g++.h index 74be0d51147..714e8dcf3a3 100644 --- a/ACE/ace/config-sunos5.4-g++.h +++ b/ACE/ace/config-sunos5.4-g++.h @@ -122,8 +122,6 @@ # endif /* _REENTRANT */ #endif /* !ACE_MT_SAFE */ -// Platform supports Solaris threads. -#define ACE_HAS_STHREADS // Platform supports threads. #define ACE_HAS_THREADS @@ -136,7 +134,6 @@ /* end threading defines */ -#define ACE_HAS_PRIOCNTL #define ACE_NEEDS_LWP_PRIO_SET // Platform supports TLI timod STREAMS module. diff --git a/ACE/ace/config-sunos5.4-sunc++-4.x.h b/ACE/ace/config-sunos5.4-sunc++-4.x.h index 4bcec509c33..c9114bcd20b 100644 --- a/ACE/ace/config-sunos5.4-sunc++-4.x.h +++ b/ACE/ace/config-sunos5.4-sunc++-4.x.h @@ -121,8 +121,6 @@ # define ACE_MT_SAFE 1 #endif -// Platform supports Solaris threads. -#define ACE_HAS_STHREADS // Platform supports threads. #define ACE_HAS_THREADS @@ -135,7 +133,6 @@ /* end threading defines */ -#define ACE_HAS_PRIOCNTL #define ACE_NEEDS_LWP_PRIO_SET // Reactor detects deadlock diff --git a/ACE/ace/config-sunos5.5.h b/ACE/ace/config-sunos5.5.h index 7fc73ca2e75..1188e47240b 100644 --- a/ACE/ace/config-sunos5.5.h +++ b/ACE/ace/config-sunos5.5.h @@ -45,7 +45,6 @@ # endif /* __SUNPRO_CC >= 0x500 */ # endif /* __SUNPRO_CC >= 0x420 */ -# define ACE_CAST_CONST const # define ACE_HAS_HI_RES_TIMER # define ACE_HAS_SIG_C_FUNC /* Sun CC 5.0 needs this, 4.2 doesn't mind. */ # define ACE_HAS_XPG4_MULTIBYTE_CHAR @@ -269,7 +268,6 @@ _POSIX_PTHREAD_SEMANTICS */ #endif /* !ACE_MT_SAFE || ACE_MT_SAFE == 1 */ -#define ACE_HAS_PRIOCNTL // Platform supports ACE_TLI timod STREAMS module. #define ACE_HAS_TIMOD_H diff --git a/ACE/ace/os_include/os_kstat.h b/ACE/ace/os_include/os_kstat.h deleted file mode 100644 index 957b608bd88..00000000000 --- a/ACE/ace/os_include/os_kstat.h +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file os_kstat.h - * - * @author Johnny Willemsen <jwillemsen@remedy.nl> - */ -//============================================================================= - -#ifndef ACE_OS_INCLUDE_OS_KSTAT_H -#define ACE_OS_INCLUDE_OS_KSTAT_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_KSTAT) -# define ACE_HAS_KSTAT_H -#endif /* ACE_HAS_KSTAT */ - -#if defined (ACE_HAS_KSTAT_H) -# include <kstat.h> -#endif /* ACE_HAS_KSTAT_H */ - -#include /**/ "ace/post.h" -#endif /* ACE_OS_INCLUDE_OS_KSTAT_H */ diff --git a/ACE/ace/os_include/os_pthread.h b/ACE/ace/os_include/os_pthread.h index 1a2b2e75cdf..74a9e2c8ba7 100644 --- a/ACE/ace/os_include/os_pthread.h +++ b/ACE/ace/os_include/os_pthread.h @@ -22,18 +22,6 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#if defined (ACE_HAS_PRIOCNTL) - // Need to #include thread.h before #defining THR_BOUND, etc., - // when building without threads on SunOS 5.x. -# if defined (sun) -# include /**/ <thread.h> -# endif /* sun */ - - // Need to #include these before #defining USYNC_PROCESS on SunOS 5.x. -# include /**/ <sys/rtpriocntl.h> -# include /**/ <sys/tspriocntl.h> -#endif /* ACE_HAS_PRIOCNTL */ - #include "ace/os_include/sys/os_types.h" #include "ace/os_include/os_stdint.h" @@ -218,14 +206,12 @@ # endif /* PTHREAD_MUTEXTYPE_FAST */ # endif /* PTHREAD_PROCESS_SHARED */ -# if !defined (ACE_HAS_STHREADS) -# if !defined (USYNC_THREAD) -# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE -# endif /* ! USYNC_THREAD */ -# if !defined (USYNC_PROCESS) -# define USYNC_PROCESS PTHREAD_PROCESS_SHARED -# endif /* ! USYNC_PROCESS */ -# endif /* ACE_HAS_STHREADS */ +# if !defined (USYNC_THREAD) +# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE +# endif /* ! USYNC_THREAD */ +# if !defined (USYNC_PROCESS) +# define USYNC_PROCESS PTHREAD_PROCESS_SHARED +# endif /* ! USYNC_PROCESS */ /* MM-Graz: prevent warnings */ # undef THR_BOUND @@ -252,7 +238,7 @@ # define THR_EXPLICIT_SCHED 0x00800000 # define THR_SCHED_IO 0x01000000 -# if !defined (ACE_HAS_STHREADS) && !defined (ACE_MQX) +# if !defined (ACE_MQX) # if !defined (ACE_HAS_POSIX_SEM) && !defined (ACE_USES_FIFO_SEM) // This needs to be moved out of here. @@ -282,8 +268,6 @@ public: # endif /* !ACE_HAS_POSIX_SEM */ # if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) - // If we are on Solaris we can just reuse the existing - // implementations of these synchronization types. # if !defined (ACE_LACKS_RWLOCK_T) && !defined (ACE_HAS_PTHREADS_UNIX98_EXT) # include /**/ <synch.h> typedef rwlock_t ACE_rwlock_t; @@ -295,7 +279,7 @@ public: # if !defined (ACE_HAS_POSIX_SEM) typedef sema_t ACE_sema_t; # endif /* !ACE_HAS_POSIX_SEM */ -# endif /* !ACE_HAS_STHREADS */ +# endif /* !ACE_MQX */ # if defined (ACE_HAS_PTHREADS_UNIX98_EXT) && !defined (ACE_LACKS_RWLOCK_T) typedef pthread_rwlock_t ACE_rwlock_t; @@ -322,26 +306,6 @@ public: # endif /* _XOPEN_SOURCE && _XOPEN_SOURCE < 600 */ # endif /* ACE_LINUX && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) */ - -#elif defined (ACE_HAS_STHREADS) -# if !defined (ACE_THR_PRI_FIFO_MIN) -# define ACE_THR_PRI_FIFO_MIN (long) 0 -# endif /* !ACE_THR_PRI_FIFO_MIN */ -# if !defined (ACE_THR_PRI_FIFO_MAX) -# define ACE_THR_PRI_FIFO_MAX (long) 59 -# endif /* !ACE_THR_PRI_FIFO_MAX */ -# if !defined (ACE_THR_PRI_RR_MIN) -# define ACE_THR_PRI_RR_MIN (long) 0 -# endif /* !ACE_THR_PRI_RR_MIN */ -# if !defined (ACE_THR_PRI_RR_MAX) -# define ACE_THR_PRI_RR_MAX (long) 59 -# endif /* !ACE_THR_PRI_RR_MAX */ -# if !defined (ACE_THR_PRI_OTHER_MIN) -# define ACE_THR_PRI_OTHER_MIN (long) 0 -# endif /* !ACE_THR_PRI_OTHER_MIN */ -# if !defined (ACE_THR_PRI_OTHER_MAX) -# define ACE_THR_PRI_OTHER_MAX (long) 127 -# endif /* !ACE_THR_PRI_OTHER_MAX */ #endif /* ACE_HAS_PTHREADS */ #include /**/ "ace/post.h" diff --git a/ACE/ace/os_include/os_time.h b/ACE/ace/os_include/os_time.h index 71d3fdca9fe..eb716ff27ec 100644 --- a/ACE/ace/os_include/os_time.h +++ b/ACE/ace/os_include/os_time.h @@ -72,8 +72,7 @@ extern "C" // straightening them out. #if defined (ACE_HAS_PTHREADS) /* POSIX.1c threads (pthreads) */ // ... and 2-parameter asctime_r and ctime_r -# if !defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) && \ - !defined (ACE_HAS_STHREADS) && !defined (ACE_VXWORKS) +# if !defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) && !defined (ACE_VXWORKS) # define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R # endif #endif /* ACE_HAS_PTHREADS */ |