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

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

?? pthread.h

?? p2p類源代碼 kadc協(xié)議官方源代碼
?? H
?? 第 1 頁 / 共 3 頁
字號(hào):
 *      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
/*
 * The Open Watcom C/C++ compiler uses a non-standard calling convention
 * that passes function args in registers unless __cdecl is explicitly specified
 * in exposed function prototypes.
 *
 * We force all calls to cdecl even though this could slow Watcom code down
 * slightly. If you know that the Watcom compiler will be used to build both
 * the DLL and application, then you can probably define this as a null string.
 * Remember that pthread.h (this file) is used for both the DLL and application builds.
 */
#define PTW32_CDECL __cdecl
#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_RECURSIVE_MUTEX_INITIALIZER ((pthread_mutex_t) -2)
#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ((pthread_mutex_t) -3)
/*
 * Compatibility with LinuxThreads
 */
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER
#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
#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;
#if defined(_MSC_VER)
/* Disable MSVC 'anachronism used' warning */
#pragma warning( disable : 4229 )
#endif
typedef void (* PTW32_CDECL ptw32_cleanup_callback_t)(void *);
#if defined(_MSC_VER)
#pragma warning( default : 4229 )
#endif
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 PTW32_CDECL pthread_attr_init (pthread_attr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_destroy (pthread_attr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getdetachstate (const pthread_attr_t * attr,
                                         int *detachstate);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstackaddr (const pthread_attr_t * attr,
                                       void **stackaddr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstacksize (const pthread_attr_t * attr,
                                       size_t * stacksize);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setdetachstate (pthread_attr_t * attr,
                                         int detachstate);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstackaddr (pthread_attr_t * attr,
                                       void *stackaddr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstacksize (pthread_attr_t * attr,
                                       size_t stacksize);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedparam (const pthread_attr_t *attr,
                                        struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedparam (pthread_attr_t *attr,
                                        const struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedpolicy (pthread_attr_t *,
                                         int);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedpolicy (pthread_attr_t *,
                                         int *);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setinheritsched(pthread_attr_t * attr,
                                         int inheritsched);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getinheritsched(pthread_attr_t * attr,
                                         int * inheritsched);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setscope (pthread_attr_t *,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产呦萝稀缺另类资源| 激情亚洲综合在线| 久久影视一区二区| 欧美亚洲国产怡红院影院| 激情六月婷婷久久| 亚洲一区二区三区四区五区黄| 久久综合狠狠综合久久综合88 | 国产一本一道久久香蕉| 亚洲国产一区视频| 国产精品第四页| 欧美成人猛片aaaaaaa| 欧美视频一二三区| 91丨九色丨尤物| 国产精品影视天天线| 欧美a级一区二区| 亚洲一区二区三区在线看| 中文成人综合网| 久久久噜噜噜久久人人看| 这里只有精品视频在线观看| 日本高清无吗v一区| 成人黄色av电影| 国产精品18久久久久| 久久爱www久久做| 肉丝袜脚交视频一区二区| 一区二区三区在线影院| 国产精品久久久久久久久快鸭| 精品国产伦一区二区三区观看体验| 欧美三级欧美一级| 在线观看不卡视频| 色天使久久综合网天天| jlzzjlzz欧美大全| 成人高清视频在线观看| 国产.欧美.日韩| 国产福利视频一区二区三区| 激情国产一区二区| 久久精品国产久精国产爱| 免费看黄色91| 麻豆freexxxx性91精品| 青娱乐精品视频在线| 免费观看30秒视频久久| 美女一区二区在线观看| 免费欧美在线视频| 国内精品伊人久久久久av影院| 麻豆精品一区二区av白丝在线| 日本不卡在线视频| 另类小说一区二区三区| 韩国午夜理伦三级不卡影院| 国产在线一区二区| 成人午夜大片免费观看| av爱爱亚洲一区| 在线观看www91| 欧美日韩国产高清一区| 日韩天堂在线观看| 久久久久久久久久电影| 中文字幕精品一区二区三区精品| 中文成人av在线| 亚洲综合免费观看高清在线观看| 亚洲444eee在线观看| 奇米888四色在线精品| 激情综合网av| 不卡在线视频中文字幕| 日本韩国一区二区三区视频| 制服视频三区第一页精品| 久久综合成人精品亚洲另类欧美| 国产色一区二区| 亚洲精品亚洲人成人网| 视频一区二区三区中文字幕| 经典一区二区三区| 99久精品国产| 91精品国产入口| 欧美激情一区二区在线| 亚洲精品videosex极品| 免费高清视频精品| 丰满亚洲少妇av| 精品久久久久99| 日韩理论片网站| 视频一区中文字幕国产| 福利一区二区在线| 欧美日韩一区精品| 久久精品一区二区三区四区| 亚洲免费观看高清| 麻豆精品新av中文字幕| 91丨porny丨国产入口| 欧美一区二区三区小说| 欧美激情一区二区三区四区| 石原莉奈一区二区三区在线观看| 国v精品久久久网| 91麻豆精品久久久久蜜臀| 国产精品美日韩| 免费观看成人av| 91色综合久久久久婷婷| 精品91自产拍在线观看一区| 亚洲黄色性网站| 激情六月婷婷久久| 欧美性三三影院| 亚洲国产电影在线观看| 蜜臀91精品一区二区三区 | 亚洲欧美日韩综合aⅴ视频| 琪琪一区二区三区| 一本久久精品一区二区| 久久久久一区二区三区四区| 日韩黄色一级片| 99精品欧美一区二区蜜桃免费| 欧美大片一区二区| 亚洲二区视频在线| 91香蕉视频黄| 国产色产综合色产在线视频| 六月丁香综合在线视频| 欧美日韩中文字幕精品| 成人欧美一区二区三区白人| 国产一区啦啦啦在线观看| 4438成人网| 一区二区三区四区不卡在线| k8久久久一区二区三区| 国产午夜亚洲精品理论片色戒| 在线观看日韩电影| 日本一区二区三区四区| 国产一区二区三区视频在线播放| 欧美片在线播放| 亚洲一区二区精品久久av| www.亚洲在线| 国产精品看片你懂得| 国内一区二区在线| 精品国产一区二区三区久久影院 | 性做久久久久久免费观看欧美| 99久久久久免费精品国产 | 天堂va蜜桃一区二区三区 | 国产日韩成人精品| 国产自产高清不卡| 精品欧美一区二区在线观看| 青青草原综合久久大伊人精品| 欧美顶级少妇做爰| 五月天一区二区三区| 欧美精品一级二级| 日韩中文字幕91| 欧美电影在线免费观看| 欧美a一区二区| 日韩欧美国产综合| 久草在线在线精品观看| 精品国产一区二区三区久久久蜜月| 日韩精品1区2区3区| 欧美一区二区三区喷汁尤物| 日本特黄久久久高潮| 欧美一级理论片| 久久精品国产澳门| 久久久久久久av麻豆果冻| 国产麻豆9l精品三级站| 欧美国产一区视频在线观看| 成人激情免费网站| 夜夜爽夜夜爽精品视频| 欧美日韩国产一二三| 免费在线看成人av| 久久五月婷婷丁香社区| 成人高清av在线| 亚洲最新在线观看| 欧美一区二区精美| 欧美精品久久一区二区三区| 视频一区视频二区中文| 精品国产免费人成在线观看| 从欧美一区二区三区| 亚洲激情自拍视频| 69久久夜色精品国产69蝌蚪网| 老司机午夜精品| 国产精品久久毛片av大全日韩| 91福利精品第一导航| 免播放器亚洲一区| 中文字幕乱码亚洲精品一区| 欧美无人高清视频在线观看| 美女一区二区三区在线观看| 国产亚洲成年网址在线观看| 91久久精品午夜一区二区| 免费精品99久久国产综合精品| 久久久精品国产免大香伊| 色综合亚洲欧洲| 成人免费视频caoporn| 亚洲天堂网中文字| 91 com成人网| 国产99久久久国产精品潘金 | 中文字幕欧美激情一区| 在线观看国产日韩| 国产精品一级片在线观看| 亚洲与欧洲av电影| 久久男人中文字幕资源站| 欧美在线免费观看亚洲| 国产毛片精品一区| 亚洲成人第一页| 国产女人18毛片水真多成人如厕| 欧美日韩另类一区| 成人精品鲁一区一区二区| 视频一区二区中文字幕| 中文字幕制服丝袜一区二区三区 | 国产91精品在线观看| 丝袜亚洲另类欧美综合| 国产精品久久久久一区二区三区共 | 欧美日韩在线精品一区二区三区激情| 精久久久久久久久久久| 亚洲成人精品影院| |精品福利一区二区三区| 欧美电视剧在线看免费| 欧美视频一区二区三区四区|