亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pthread.h

?? 著名的入侵檢測(cè)系統(tǒng)snort的最新版本的源碼
?? H
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
#define _POSIX_THREAD_PRIO_INHERIT
#define _POSIX_THREAD_PRIO_PROTECT
#define _POSIX_THREAD_PROCESS_SHARED

#endif				/* KLUDGE */

/*
 * POSIX Limits
 *
 *	PTHREAD_DESTRUCTOR_ITERATIONS
 *		Standard states this must be at least
 *		4.
 *
 *	PTHREAD_KEYS_MAX
 *		WIN32 permits only 64 TLS keys per process.
 *		This limitation could be worked around by
 *		simply simulating keys.
 *
 *	PTHREADS_STACK_MIN
 *		POSIX specifies 0 which is also the value WIN32
 *		interprets as allowing the system to
 *		set the size to that of the main thread. The
 *		maximum stack size in Win32 is 1Meg. WIN32
 *		allocates more stack as required up to the 1Meg
 *		limit.
 *
 *	PTHREAD_THREADS_MAX
 *		Not documented by WIN32. Wrote a test program
 *		that kept creating threads until it failed
 *		revealed this approximate number (Windows NT).
 *		This number is somewhat less for Windows 9x
 *		and is effectively less than 64. Perhaps this
 *		constant should be set at DLL load time.
 *
 */
#define PTHREAD_DESTRUCTOR_ITERATIONS			       4
#define PTHREAD_KEYS_MAX			64
#define PTHREAD_STACK_MIN			 0
#define PTHREAD_THREADS_MAX		      2019
#ifndef _POSIX_SEM_NSEMS_MAX
/* Not used and only an arbitrary value. */
#  define _POSIX_SEM_NSEMS_MAX		      1024
#endif
#ifndef _POSIX_SEM_VALUE_MAX
#  define _POSIX_SEM_VALUE_MAX	       (INT_MAX/2)
#endif

#if __GNUC__ && ! defined (__declspec)
# error Please upgrade your GNU compiler to one that supports __declspec.
#endif

/*
 * When building the DLL code, you should define PTW32_BUILD so that
 * the variables/functions are exported correctly. When using the DLL,
 * do NOT define PTW32_BUILD, and then the variables/functions will
 * be imported correctly.
 */
#ifdef _DLL
#  ifdef PTW32_BUILD
#    define PTW32_DLLPORT __declspec (dllexport)
#  else
#    define PTW32_DLLPORT __declspec (dllimport)
#  endif
#endif

#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX
#   include	<sys/types.h>
#else
typedef struct pthread_t_ *pthread_t;
typedef struct pthread_attr_t_ *pthread_attr_t;
typedef struct pthread_once_t_ pthread_once_t;
typedef struct pthread_key_t_ *pthread_key_t;
typedef struct pthread_mutex_t_ *pthread_mutex_t;
typedef struct pthread_mutexattr_t_ *pthread_mutexattr_t;
typedef struct pthread_cond_t_ *pthread_cond_t;
typedef struct pthread_condattr_t_ *pthread_condattr_t;
#endif
typedef struct pthread_rwlock_t_ *pthread_rwlock_t;
typedef struct pthread_rwlockattr_t_ *pthread_rwlockattr_t;
typedef struct pthread_spinlock_t_ *pthread_spinlock_t;
typedef struct pthread_barrier_t_ *pthread_barrier_t;
typedef struct pthread_barrierattr_t_ *pthread_barrierattr_t;

/*
 * ====================
 * ====================
 * POSIX Threads
 * ====================
 * ====================
 */

enum {
/*
 * pthread_attr_{get,set}detachstate
 */
  PTHREAD_CREATE_JOINABLE	= 0,  /* Default */
  PTHREAD_CREATE_DETACHED	= 1,

/*
 * pthread_attr_{get,set}inheritsched
 */
  PTHREAD_INHERIT_SCHED 	= 0,
  PTHREAD_EXPLICIT_SCHED	= 1,  /* Default */

/*
 * pthread_{get,set}scope
 */
  PTHREAD_SCOPE_PROCESS 	= 0,
  PTHREAD_SCOPE_SYSTEM		= 1,  /* Default */

/*
 * pthread_setcancelstate paramters
 */
  PTHREAD_CANCEL_ENABLE 	= 0,  /* Default */
  PTHREAD_CANCEL_DISABLE	= 1,

/*
 * pthread_setcanceltype parameters
 */
  PTHREAD_CANCEL_ASYNCHRONOUS	= 0,
  PTHREAD_CANCEL_DEFERRED	= 1,  /* Default */

/*
 * pthread_mutexattr_{get,set}pshared
 * pthread_condattr_{get,set}pshared
 */
  PTHREAD_PROCESS_PRIVATE	= 0,
  PTHREAD_PROCESS_SHARED	= 1,

/*
 * pthread_barrier_wait
 */
  PTHREAD_BARRIER_SERIAL_THREAD = -1
};

/*
 * ====================
 * ====================
 * Cancelation
 * ====================
 * ====================
 */
#define PTHREAD_CANCELED       ((void *) -1)


/*
 * ====================
 * ====================
 * Once Key
 * ====================
 * ====================
 */
#define PTHREAD_ONCE_INIT	{ PTW32_FALSE, -1 }

struct pthread_once_t_
{
  int done;		    /* indicates if user function executed  */
  long started; 	    /* First thread to increment this value */
			    /* to zero executes the user function   */
};


/*
 * ====================
 * ====================
 * Object initialisers
 * ====================
 * ====================
 */
#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)

#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1)

#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1)

#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1)


/*
 * Mutex types.
 */
enum
{
  /* Compatibility with LinuxThreads */
  PTHREAD_MUTEX_FAST_NP,
  PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_TIMED_NP = PTHREAD_MUTEX_FAST_NP,
  PTHREAD_MUTEX_ADAPTIVE_NP = PTHREAD_MUTEX_FAST_NP,
  /* For compatibility with POSIX */
  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
};


/* There are three implementations of cancel cleanup.
 * Note that pthread.h is included in both application
 * compilation units and also internally for the library.
 * The code here and within the library aims to work
 * for all reasonable combinations of environments.
 *
 * The three implementations are:
 *
 *   WIN32 SEH
 *   C
 *   C++
 *
 * Please note that exiting a push/pop block via
 * "return", "exit", "break", or "continue" will
 * lead to different behaviour amongst applications
 * depending upon whether the library was built
 * using SEH, C++, or C. For example, a library built
 * with SEH will call the cleanup routine, while both
 * C++ and C built versions will not.
 */

/*
 * Define defaults for cleanup code.
 * Note: Unless the build explicitly defines one of the following, then
 * we default to standard C style cleanup. This style uses setjmp/longjmp
 * in the cancelation and thread exit implementations and therefore won't
 * do stack unwinding if linked to applications that have it (e.g.
 * C++ apps). This is currently consistent with most/all commercial Unix
 * POSIX threads implementations.
 */
#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
# define __CLEANUP_C
#endif

#if defined( __CLEANUP_SEH ) && defined(__GNUC__)
#error ERROR [__FILE__, line __LINE__]: GNUC does not support SEH.
#endif

typedef struct ptw32_cleanup_t ptw32_cleanup_t;
typedef void (__cdecl *ptw32_cleanup_callback_t)(void *);

struct ptw32_cleanup_t
{
  ptw32_cleanup_callback_t routine;
  void *arg;
  struct ptw32_cleanup_t *prev;
};

#ifdef __CLEANUP_SEH
	/*
	 * WIN32 SEH version of cancel cleanup.
	 */

#define pthread_cleanup_push( _rout, _arg ) \
	{ \
	    ptw32_cleanup_t	_cleanup; \
	    \
	_cleanup.routine	= (ptw32_cleanup_callback_t)(_rout); \
	    _cleanup.arg	= (_arg); \
	    __try \
	      { \

#define pthread_cleanup_pop( _execute ) \
	      } \
	    __finally \
		{ \
		    if( _execute || AbnormalTermination()) \
		      { \
			  (*(_cleanup.routine))( _cleanup.arg ); \
		      } \
		} \
	}

#else /* __CLEANUP_SEH */

#ifdef __CLEANUP_C

	/*
	 * C implementation of PThreads cancel cleanup
	 */

#define pthread_cleanup_push( _rout, _arg ) \
	{ \
	    ptw32_cleanup_t	_cleanup; \
	    \
	    ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \

#define pthread_cleanup_pop( _execute ) \
	    (void) ptw32_pop_cleanup( _execute ); \
	}

#else /* __CLEANUP_C */

#ifdef __CLEANUP_CXX

	/*
	 * C++ version of cancel cleanup.
	 * - John E. Bossom.
	 */

	class PThreadCleanup {
	  /*
	   * PThreadCleanup
	   *
	   * Purpose
	   *	  This class is a C++ helper class that is
	   *	  used to implement pthread_cleanup_push/
	   *	  pthread_cleanup_pop.
	   *	  The destructor of this class automatically
	   *	  pops the pushed cleanup routine regardless
	   *	  of how the code exits the scope
	   *	  (i.e. such as by an exception)
	   */
      ptw32_cleanup_callback_t cleanUpRout;
	  void	  *	  obj;
	  int		  executeIt;

	public:
	  PThreadCleanup() :
	    cleanUpRout( 0 ),
	    obj( 0 ),
	    executeIt( 0 )
	    /*
	     * No cleanup performed
	     */
	    {
	    }

	  PThreadCleanup(
	     ptw32_cleanup_callback_t routine,
			 void	 *	 arg ) :
	    cleanUpRout( routine ),
	    obj( arg ),
	    executeIt( 1 )
	    /*
	     * Registers a cleanup routine for 'arg'
	     */
	    {
	    }

	  ~PThreadCleanup()
	    {
	      if ( executeIt && ((void *) cleanUpRout != (void *) 0) )
		{
		  (void) (*cleanUpRout)( obj );
		}
	    }

	  void execute( int exec )
	    {
	      executeIt = exec;
	    }
	};

	/*
	 * C++ implementation of PThreads cancel cleanup;
	 * This implementation takes advantage of a helper
	 * class who's destructor automatically calls the
	 * cleanup routine if we exit our scope weirdly
	 */
#define pthread_cleanup_push( _rout, _arg ) \
	{ \
	    PThreadCleanup  cleanup((ptw32_cleanup_callback_t)(_rout), \
				    (void *) (_arg) );

#define pthread_cleanup_pop( _execute ) \
	    cleanup.execute( _execute ); \
	}

#else

#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.

#endif /* __CLEANUP_CXX */

#endif /* __CLEANUP_C */

#endif /* __CLEANUP_SEH */

/*
 * ===============
 * ===============
 * Methods
 * ===============
 * ===============
 */

/*
 * PThread Attribute Functions
 */
PTW32_DLLPORT int pthread_attr_init (pthread_attr_t * attr);

PTW32_DLLPORT int pthread_attr_destroy (pthread_attr_t * attr);

PTW32_DLLPORT int pthread_attr_getdetachstate (const pthread_attr_t * attr,
					 int *detachstate);

PTW32_DLLPORT int pthread_attr_getstackaddr (const pthread_attr_t * attr,
				       void **stackaddr);

PTW32_DLLPORT int pthread_attr_getstacksize (const pthread_attr_t * attr,
				       size_t * stacksize);

PTW32_DLLPORT int pthread_attr_setdetachstate (pthread_attr_t * attr,
					 int detachstate);

PTW32_DLLPORT int pthread_attr_setstackaddr (pthread_attr_t * attr,
				       void *stackaddr);

PTW32_DLLPORT int pthread_attr_setstacksize (pthread_attr_t * attr,
				       size_t stacksize);

PTW32_DLLPORT int pthread_attr_getschedparam (const pthread_attr_t *attr,
					struct sched_param *param);

PTW32_DLLPORT int pthread_attr_setschedparam (pthread_attr_t *attr,
					const struct sched_param *param);

PTW32_DLLPORT int pthread_attr_setschedpolicy (pthread_attr_t *,
					 int);

PTW32_DLLPORT int pthread_attr_getschedpolicy (pthread_attr_t *,
					 int *);

PTW32_DLLPORT int pthread_attr_setinheritsched(pthread_attr_t * attr,
					 int inheritsched);

PTW32_DLLPORT int pthread_attr_getinheritsched(pthread_attr_t * attr,
					 int * inheritsched);

PTW32_DLLPORT int pthread_attr_setscope (pthread_attr_t *,
				   int);

PTW32_DLLPORT int pthread_attr_getscope (const pthread_attr_t *,
				   int *);

/*

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区在线观看| 麻豆国产91在线播放| 国产精品麻豆久久久| 久久久噜噜噜久噜久久综合| 欧美xfplay| 欧美r级在线观看| 精品女同一区二区| 精品国产电影一区二区| 精品国产伦一区二区三区观看方式| 91精品在线一区二区| 日韩一区二区中文字幕| 日韩一区二区在线观看| 欧美成人激情免费网| 精品久久久久久综合日本欧美| 久久午夜电影网| 国产精品免费人成网站| 亚洲乱码国产乱码精品精98午夜| 亚洲美女免费视频| 亚洲国产精品麻豆| 青青草原综合久久大伊人精品| 美腿丝袜亚洲三区| 国产精品1024| 91在线无精精品入口| 欧美三级乱人伦电影| 欧美一区二区免费观在线| 精品国产123| 国产精品嫩草99a| 亚洲国产综合人成综合网站| 日韩精品五月天| 韩国精品一区二区| 成人app在线观看| 91精品1区2区| 欧美一区二区不卡视频| 久久久久久**毛片大全| 亚洲男人电影天堂| 日本亚洲电影天堂| 国产精品亚洲成人| 在线看不卡av| 精品久久久久99| 国产精品国产三级国产a| 亚洲成av人**亚洲成av**| 精品一区二区免费在线观看| 99久久精品久久久久久清纯| 欧美日韩在线播放三区| 久久久777精品电影网影网 | 玉足女爽爽91| 日韩国产在线观看| 国产成人免费av在线| 欧美视频日韩视频在线观看| 精品久久人人做人人爱| 一区二区高清免费观看影视大全| 日产国产欧美视频一区精品| 成人av综合在线| 91精品国产高清一区二区三区 | 欧美巨大另类极品videosbest| www欧美成人18+| 一区二区三区精品视频| 蜜臂av日日欢夜夜爽一区| 99久久精品国产麻豆演员表| 日韩西西人体444www| 亚洲精品中文在线观看| 国产精品一区二区x88av| 国产午夜亚洲精品午夜鲁丝片| 亚洲精品欧美在线| 国产精品一级在线| 欧美老人xxxx18| 中文字幕高清不卡| 日本视频一区二区| 一本到高清视频免费精品| 精品国产乱码久久久久久老虎| 一二三区精品视频| 成人福利在线看| 日韩欧美三级在线| 亚洲国产乱码最新视频| 成人午夜私人影院| 精品少妇一区二区三区| 香蕉影视欧美成人| 不卡的av在线| 国产日韩一级二级三级| 丝袜亚洲另类丝袜在线| 色综合久久综合| 国产精品情趣视频| 国产毛片精品国产一区二区三区| 欧美精品粉嫩高潮一区二区| 亚洲欧美日韩综合aⅴ视频| 成人免费毛片aaaaa**| www国产精品av| 午夜激情一区二区三区| 91福利视频在线| 亚洲欧洲日韩av| 成人黄色一级视频| 中文乱码免费一区二区| 国产在线精品视频| 日韩女优av电影| 免费成人在线观看| 欧美一区二区在线视频| 五月天激情综合网| 欧美色欧美亚洲另类二区| 亚洲一区二区三区国产| 在线观看精品一区| 一区二区在线观看视频在线观看| 91免费视频网址| 国产精品理论在线观看| 国产91精品一区二区麻豆网站| 精品国产一区二区精华| 久久99精品久久久久久久久久久久 | 亚洲图片欧美一区| 欧美日韩中字一区| 午夜欧美大尺度福利影院在线看| 91黄色免费网站| 亚洲成人三级小说| 在线播放91灌醉迷j高跟美女 | 高清国产一区二区三区| 中文字幕欧美国产| 99re亚洲国产精品| 亚洲欧美日本在线| 欧美在线你懂的| 五月天视频一区| 日韩精品中文字幕在线不卡尤物| 日本视频一区二区| 日韩精品一区二区三区视频播放| 精品一区二区久久久| 国产女人水真多18毛片18精品视频| 成人免费视频视频| 一区二区视频在线看| 欧美三级韩国三级日本一级| 日韩二区三区在线观看| 日韩亚洲国产中文字幕欧美| 激情综合一区二区三区| 国产女主播一区| 99久免费精品视频在线观看| 亚洲午夜一区二区| 日韩一区二区在线播放| 国产成人精品三级| 一区二区三区 在线观看视频| 欧美日韩一区不卡| 欧美三级电影在线看| 麻豆精品一区二区| 中文字幕精品—区二区四季| 欧美视频在线一区| 国内国产精品久久| 亚洲欧美色图小说| 日韩欧美一区二区视频| 99久久精品免费看| 蜜臀99久久精品久久久久久软件| 中文字幕成人在线观看| 欧美久久久一区| 成人永久免费视频| 亚洲午夜国产一区99re久久| 久久蜜桃一区二区| 色婷婷综合五月| 韩国av一区二区三区在线观看| 亚洲精品亚洲人成人网在线播放| 欧美成人a∨高清免费观看| 91美女片黄在线观看| 九色综合国产一区二区三区| 亚洲天堂精品在线观看| 欧美一区二区啪啪| 色综合天天天天做夜夜夜夜做| 麻豆成人av在线| 一区二区三区**美女毛片| 国产色婷婷亚洲99精品小说| 精品视频在线免费观看| bt欧美亚洲午夜电影天堂| 日韩国产精品91| 日韩美女啊v在线免费观看| 精品粉嫩aⅴ一区二区三区四区 | 亚洲免费av在线| 国产亚洲综合av| 91精品国产综合久久蜜臀| 92精品国产成人观看免费| 国产精品正在播放| 免费看欧美美女黄的网站| 亚洲综合自拍偷拍| 中文字幕中文乱码欧美一区二区| 3751色影院一区二区三区| 91麻豆蜜桃一区二区三区| 国产精品一线二线三线精华| 日本一不卡视频| 亚洲一区视频在线观看视频| 国产精品美日韩| 久久久精品国产免大香伊| 91精品国产综合久久蜜臀| 欧美三级电影在线观看| 91年精品国产| eeuss鲁片一区二区三区在线观看| 蜜桃av一区二区三区电影| 天天影视色香欲综合网老头| 亚洲精品国产精品乱码不99 | 亚洲国产一区二区三区| 中文字幕亚洲区| 国产精品欧美一级免费| 欧美激情一区在线观看| 久久色视频免费观看| 精品国产亚洲在线| 日韩精品一区国产麻豆| 欧美一区二区三区人| 这里只有精品免费| 欧美日韩久久久一区| 国产精品视频麻豆|