Some missing from merge.

Signed-off-by: Salja <salja2012@hotmail.de>
This commit is contained in:
Salja 2012-08-05 14:54:07 +02:00 committed by Antz
parent ec939a5bce
commit f4be15a7af
1895 changed files with 160408 additions and 53601 deletions

View file

@ -4,7 +4,9 @@
/**
* @file OS_NS_Thread.h
*
* @author Douglas C. Schmidt <d.schmidt@vanderbilt.edu>
* $Id: OS_NS_Thread.h 97911 2014-10-07 21:58:25Z shuston $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
* @author and a cast of thousands...
*
@ -160,7 +162,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# elif defined (ACE_VXWORKS)
# include /**/ <sysLib.h> // for sysClkRateGet()
# include /**/ <types/vxTypes.h>
# if !defined (__RTP__)
# include /**/ <taskLib.h>
# include /**/ <taskHookLib.h>
@ -229,8 +230,8 @@ typedef struct
char *name_;
} ACE_sema_t;
# endif /* !ACE_HAS_POSIX_SEM */
typedef ACE_VX_TASK_ID ACE_thread_t;
typedef ACE_VX_TASK_ID ACE_hthread_t;
typedef int ACE_thread_t;
typedef int 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.)
@ -400,7 +401,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# endif /* ACE_HAS_WTHREADS_CONDITION_VARIABLE || ACE_LACKS_COND_T */
# if defined (ACE_LACKS_RWLOCK_T)
# if defined (ACE_LACKS_RWLOCK_T) && !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@ -705,7 +706,7 @@ public:
ACE_Thread_ID (const ACE_Thread_ID &id);
/// Assignment operator
ACE_Thread_ID& operator= (const ACE_Thread_ID &id);
ACE_Thread_ID& operator= (const ACE_Thread_ID&id);
/// Get the thread id.
ACE_thread_t id (void) const;
@ -720,14 +721,7 @@ public:
void handle (ACE_hthread_t);
// Create a string representation of the thread id.
void to_string (char *thr_string, size_t thr_string_len) const;
// Create a string representation of the thread id.
template <size_t N>
void to_string (char (&thr_string)[N]) const
{
this->to_string (thr_string, N);
}
void to_string (char *thr_string) const;
/// Equality operator.
bool operator== (const ACE_Thread_ID &) const;
@ -810,7 +804,7 @@ class ACE_TSS_Keys;
class ACE_Export ACE_TSS_Emulation
{
public:
typedef void (*ACE_TSS_DESTRUCTOR)(void *value);
typedef void (*ACE_TSS_DESTRUCTOR)(void *value) /* throw () */;
/// Maximum number of TSS keys allowed over the life of the program.
enum { ACE_TSS_THREAD_KEYS_MAX = ACE_DEFAULT_THREAD_KEYS };
@ -1006,8 +1000,6 @@ private:
class ACE_TSS_Keys
{
public:
ACE_ALLOC_HOOK_DECLARE;
/// Default constructor, to initialize all bits to zero (unused).
ACE_TSS_Keys (void);
@ -1264,7 +1256,7 @@ namespace ACE_OS {
ACE_Time_Value *timeout,
int use_absolute_time = 1);
ACE_NAMESPACE_INLINE_FUNCTION
extern ACE_Export
int event_wait (ACE_event_t *event);
//@}
@ -1498,12 +1490,6 @@ namespace ACE_OS {
LPSECURITY_ATTRIBUTES sa = 0);
# endif /* ACE_HAS_WCHAR */
ACE_NAMESPACE_INLINE_FUNCTION
void sema_avoid_unlink (ACE_sema_t *s, bool avoid_unlink);
ACE_NAMESPACE_INLINE_FUNCTION
int sema_unlink (const char *name);
ACE_NAMESPACE_INLINE_FUNCTION
int sema_post (ACE_sema_t *s);
@ -1850,65 +1836,57 @@ namespace ACE_OS {
#endif /* ACE_USES_WCHAR */
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
#if !defined (ACE_WIN32)
/// Implementation details of Event emulation on Unix, may be in shared memory
struct ACE_eventdata_t
extern "C"
{
/// Protect critical section.
ACE_mutex_t lock_;
/// Keeps track of waiters.
ACE_cond_t condition_;
/// Object type.
int type_;
/// Specifies if this is an auto- or manual-reset event.
int manual_reset_;
/// "True" if signaled.
int is_signaled_;
/// Special bool for auto_events alone
/**
* The semantics of auto events forces us to introduce this extra
* variable to ensure that the thread is not woken up
* spuriously. Please see event_timedwait () to see
* how this is used for auto_events.
* @todo This is a hack that needs revisiting after x.4
*/
bool auto_event_signaled_;
/// Number of waiting threads.
unsigned long waiting_threads_;
/// Signal count
unsigned long signal_count_;
ACE_ALLOC_HOOK_DECLARE;
};
# if !defined ACE_USES_FIFO_SEM \
&& !(defined ACE_HAS_POSIX_SEM && defined ACE_HAS_POSIX_SEM_TIMEOUT \
&& !defined ACE_LACKS_NAMED_POSIX_SEM)
# define ACE_EVENT_NO_FIFO_SEM
typedef struct
{
#if (defined (ACE_HAS_PTHREADS) && defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
/// Protect critical section.
ACE_mutex_t lock_;
/// Keeps track of waiters.
ACE_cond_t condition_;
#else
# if (defined (ACE_HAS_PTHREADS) && defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_MUTEXATTR_PSHARED)) || \
(!defined (ACE_USES_FIFO_SEM) && (!defined (ACE_HAS_POSIX_SEM) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
/// Protect critical section.
ACE_mutex_t lock_;
# endif
#endif
# if (defined ACE_HAS_PTHREADS && defined _POSIX_THREAD_PROCESS_SHARED \
&& !defined ACE_LACKS_MUTEXATTR_PSHARED) || defined ACE_EVENT_NO_FIFO_SEM
# define ACE_EVENT_USE_MUTEX_PSHARED 1
# else
# define ACE_EVENT_USE_MUTEX_PSHARED 0
# endif
/// Object type.
int type_;
# if (defined ACE_HAS_PTHREADS && defined _POSIX_THREAD_PROCESS_SHARED \
&& !defined ACE_LACKS_CONDATTR_PSHARED \
&& !defined ACE_LACKS_MUTEXATTR_PSHARED) || defined ACE_EVENT_NO_FIFO_SEM
# define ACE_EVENT_USE_COND_PSHARED 1
# else
# define ACE_EVENT_USE_COND_PSHARED 0
# endif
/// Specifies if this is an auto- or manual-reset event.
int manual_reset_;
/// "True" if signaled.
int is_signaled_;
/// Special bool for auto_events alone
/**
* The semantics of auto events forces us to introduce this extra
* variable to ensure that the thread is not woken up
* spuriously. Please see event_wait and event_timedwait () to see
* how this is used for auto_events.
* @todo This is a hack that needs revisiting after x.4
*/
bool auto_event_signaled_;
/// Number of waiting threads.
unsigned long waiting_threads_;
/// Signal count
unsigned long signal_count_;
} ACE_eventdata_t;
}
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_event_t
@ -1917,52 +1895,45 @@ struct ACE_eventdata_t
*/
class ACE_Export ACE_event_t
{
friend int ACE_OS::event_init (ACE_event_t *, int, int, int, const char *,
void *, int);
friend int ACE_OS::event_init (ACE_event_t *, int, ACE_condattr_t *, int,
int, const char *, void *, int);
friend int ACE_OS::event_destroy (ACE_event_t *);
friend int ACE_OS::event_wait (ACE_event_t *);
friend int ACE_OS::event_timedwait (ACE_event_t *, ACE_Time_Value *, int);
friend int ACE_OS::event_signal (ACE_event_t *);
friend int ACE_OS::event_pulse (ACE_event_t *);
friend int ACE_OS::event_reset (ACE_event_t *);
friend int ACE_OS::event_init(ACE_event_t*, int, int, int, const char*, void*,int);
friend int ACE_OS::event_init(ACE_event_t*, int, ACE_condattr_t*, int, int, const char*, void*,int);
friend int ACE_OS::event_destroy(ACE_event_t*);
friend int ACE_OS::event_wait(ACE_event_t*);
friend int ACE_OS::event_timedwait(ACE_event_t*, ACE_Time_Value*, int);
friend int ACE_OS::event_signal(ACE_event_t*);
friend int ACE_OS::event_pulse(ACE_event_t*);
friend int ACE_OS::event_reset(ACE_event_t*);
public:
/// Constructor initializing all pointer fields to null
ACE_event_t (void);
private:
/// Lock the internal mutex/semaphore
int lock (void);
/// Unlock the internal mutex/semaphore
int unlock (void);
/// Use the internal semaphore or condition variable to unblock one thread
int wake_one (void);
protected:
/// Event name if process shared.
char *name_;
char* name_;
/// Event data
ACE_eventdata_t *eventdata_;
ACE_eventdata_t* eventdata_;
# if !ACE_EVENT_USE_COND_PSHARED
#if (!defined (ACE_HAS_PTHREADS) || !defined (_POSIX_THREAD_PROCESS_SHARED) || defined (ACE_LACKS_CONDATTR_PSHARED)) && \
(defined (ACE_USES_FIFO_SEM) || \
(defined (ACE_HAS_POSIX_SEM) && defined (ACE_HAS_POSIX_SEM_TIMEOUT) && !defined (ACE_LACKS_NAMED_POSIX_SEM)))
/// Keeps track of waiters.
ACE_sema_t semaphore_;
# endif
# if !ACE_EVENT_USE_MUTEX_PSHARED
/// Protect critical section.
# if (!defined (ACE_HAS_PTHREADS) || !defined (_POSIX_THREAD_PROCESS_SHARED) || defined (ACE_LACKS_MUTEXATTR_PSHARED)) && \
(defined (ACE_USES_FIFO_SEM) || (defined (ACE_HAS_POSIX_SEM) && !defined (ACE_LACKS_NAMED_POSIX_SEM)))
/// Protect critical section.
ACE_sema_t lock_;
# endif
#endif
};
#endif /* ACE_WIN32 */
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_WIN32 */
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL