mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 01:37:00 +00:00
Some missing from merge.
Signed-off-by: Salja <salja2012@hotmail.de>
This commit is contained in:
parent
ec939a5bce
commit
f4be15a7af
1895 changed files with 160408 additions and 53601 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue