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

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

?? pthread.h

?? Pthread本來(lái)是一套用戶級(jí)線程庫(kù), 但在Linux上實(shí)現(xiàn)時(shí), 卻使用了內(nèi)核級(jí)線程 來(lái)完成, 這樣的好處是, 可以充分的提高程序的并發(fā)性, 線程也可以象以前一樣調(diào)用 read這樣的函數(shù), 而不必?fù)?dān)心
?? H
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*
 * POSIX 1003.1-2001 Limits
 * ===========================
 *
 * These limits are normally set in <limits.h>, which is not provided with
 * pthreads-win32.
 *
 * PTHREAD_DESTRUCTOR_ITERATIONS
 *                      Maximum number of attempts to destroy
 *                      a thread's thread-specific data on
 *                      termination (must be at least 4)
 *
 * PTHREAD_KEYS_MAX
 *                      Maximum number of thread-specific data keys
 *                      available per process (must be at least 128)
 *
 * PTHREAD_STACK_MIN
 *                      Minimum supported stack size for a thread
 *
 * PTHREAD_THREADS_MAX
 *                      Maximum number of threads supported per
 *                      process (must be at least 64).
 *
 * SEM_NSEMS_MAX
 *                      The maximum number of semaphores a process can have.
 *                      (must be at least 256)
 *
 * SEM_VALUE_MAX
 *                      The maximum value a semaphore can have.
 *                      (must be at least 32767)
 *
 */
#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS     4

#undef PTHREAD_DESTRUCTOR_ITERATIONS
#define PTHREAD_DESTRUCTOR_ITERATIONS           _POSIX_THREAD_DESTRUCTOR_ITERATIONS

#undef _POSIX_THREAD_KEYS_MAX
#define _POSIX_THREAD_KEYS_MAX                  128

#undef PTHREAD_KEYS_MAX
#define PTHREAD_KEYS_MAX                        _POSIX_THREAD_KEYS_MAX

#undef PTHREAD_STACK_MIN
#define PTHREAD_STACK_MIN                       0

#undef _POSIX_THREAD_THREADS_MAX
#define _POSIX_THREAD_THREADS_MAX               64

  /* Arbitrary value */
#undef PTHREAD_THREADS_MAX
#define PTHREAD_THREADS_MAX                     2019

#undef _POSIX_SEM_NSEMS_MAX
#define _POSIX_SEM_NSEMS_MAX                    256

  /* Arbitrary value */
#undef SEM_NSEMS_MAX
#define SEM_NSEMS_MAX                           1024

#undef _POSIX_SEM_VALUE_MAX
#define _POSIX_SEM_VALUE_MAX                    32767

#undef SEM_VALUE_MAX
#define SEM_VALUE_MAX                           INT_MAX


#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.
 */
#ifndef PTW32_STATIC_LIB
#  ifdef PTW32_BUILD
#    define PTW32_DLLPORT __declspec (dllexport)
#  else
#    define PTW32_DLLPORT __declspec (dllimport)
#  endif
#else
#  define PTW32_DLLPORT
#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
/*
 * Generic handle type - intended to extend uniqueness beyond
 * that available with a simple pointer. It should scale for either
 * IA-32 or IA-64.
 */
typedef struct {
    void * p;                   /* Pointer to actual object */
    unsigned int x;             /* Extra information - reuse count etc */
} ptw32_handle_t;

typedef ptw32_handle_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, 0, 0, 0}

struct pthread_once_t_
{
  int          done;        /* indicates if user function has been executed */
  void *       lock;
  int          reserved1;
  int          reserved2;
};


/*
 * ====================
 * ====================
 * 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
};


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 *,
                                   int);

PTW32_DLLPORT int PTW32_CDECL pthread_attr_getscope (const pthread_attr_t *,

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到三区不卡视频| 亚洲欧美偷拍三级| 国产日韩高清在线| 成人欧美一区二区三区在线播放| **欧美大码日韩| 香蕉久久一区二区不卡无毒影院 | 国产91精品露脸国语对白| 成人激情综合网站| 欧美日韩亚洲国产综合| 麻豆一区二区99久久久久| 日本不卡视频一二三区| 国产成人精品aa毛片| 在线一区二区三区| 欧美精品一区二区三区蜜臀 | 99久久综合99久久综合网站| 欧美性大战xxxxx久久久| 精品国产三级a在线观看| 亚洲人成电影网站色mp4| 免费久久精品视频| 91美女福利视频| 精品国产乱码久久| 亚洲伊人色欲综合网| 国产综合色精品一区二区三区| 色天天综合久久久久综合片| 久久影音资源网| 亚欧色一区w666天堂| 成人av资源下载| 精品免费一区二区三区| 一区二区三区在线不卡| 国产伦精品一区二区三区视频青涩| 欧美日韩综合一区| 欧美激情在线免费观看| 日韩电影在线观看网站| 一本一道久久a久久精品综合蜜臀| 亚洲精品一区二区三区在线观看| 亚洲最新视频在线观看| 成人av高清在线| 精品国产乱码久久久久久久| 亚瑟在线精品视频| 色综合欧美在线视频区| 欧美激情在线看| 狠狠色丁香九九婷婷综合五月| 欧美主播一区二区三区美女| 国产精品欧美一区喷水| 亚洲一区在线免费观看| 久久精品99久久久| 欧美日韩一区久久| 亚洲色图视频网| 国产91精品在线观看| 精品国产乱码久久久久久蜜臀| 视频一区视频二区中文字幕| 日本韩国欧美国产| 亚洲色图在线播放| 99久久精品国产麻豆演员表| 久久精品日产第一区二区三区高清版 | 亚洲va欧美va人人爽午夜| av在线综合网| 国产欧美久久久精品影院| 激情丁香综合五月| 日韩免费一区二区| 日本欧美肥老太交大片| 欧美少妇bbb| 一区二区三区av电影| 91在线看国产| 亚洲欧洲日韩综合一区二区| 国产suv精品一区二区6| 久久综合色婷婷| 国内精品自线一区二区三区视频| 555www色欧美视频| 日韩精品乱码av一区二区| 欧美日韩午夜影院| 天堂一区二区在线免费观看| 欧美日韩国产小视频| 亚洲成人中文在线| 欧美日韩国产高清一区二区三区 | 三级欧美在线一区| 欧美日韩一级大片网址| 午夜国产精品一区| 欧美蜜桃一区二区三区| 日韩国产在线一| 欧美一区二区视频观看视频| 奇米影视7777精品一区二区| 欧美一区永久视频免费观看| 蜜臀av一区二区| 欧美精品一区二区三区视频| 国产精品一区二区三区四区| 久久精品一区二区三区四区| 国产成人高清视频| 1区2区3区国产精品| 欧美亚洲免费在线一区| 午夜精品免费在线| 欧美一级免费大片| 国产一区二区三区电影在线观看| 国产香蕉久久精品综合网| 成人h动漫精品一区二区| 亚洲精品成人在线| 欧美日韩国产精品成人| 久久www免费人成看片高清| 国产人妖乱国产精品人妖| 色网站国产精品| 性欧美大战久久久久久久久| 91精品国产综合久久精品app| 久久99精品久久久| 国产精品免费av| 在线观看亚洲专区| 亚洲 欧美综合在线网络| 欧美成人精品1314www| www.在线欧美| 亚洲成人你懂的| 亚洲精品一区二区三区精华液| 成人免费视频app| 亚洲一本大道在线| 久久色视频免费观看| 91在线播放网址| 日韩一区欧美二区| 国产色婷婷亚洲99精品小说| 色又黄又爽网站www久久| 蜜桃91丨九色丨蝌蚪91桃色| 欧美国产精品中文字幕| 日本韩国欧美一区二区三区| 久久se这里有精品| 亚洲精品乱码久久久久久日本蜜臀| 欧美三级蜜桃2在线观看| 精品中文av资源站在线观看| 国产精品久久久久久久久快鸭 | 亚洲一区二区三区在线| 精品国产一区二区三区av性色| 不卡的av中国片| 日韩中文字幕区一区有砖一区| 国产亚洲女人久久久久毛片| 欧美性受极品xxxx喷水| 狠狠色伊人亚洲综合成人| 亚洲欧洲综合另类在线| 欧美一区二区观看视频| av午夜精品一区二区三区| 久久激情五月激情| 亚洲国产日韩a在线播放性色| 久久综合九色综合欧美98| 欧美主播一区二区三区| 大桥未久av一区二区三区中文| 婷婷久久综合九色综合伊人色| 国产三级一区二区三区| 欧美人妖巨大在线| 99v久久综合狠狠综合久久| 精品一区二区三区av| 亚洲成人中文在线| 亚洲欧美另类在线| 久久精品免视看| 在线播放亚洲一区| 色天天综合色天天久久| 丁香一区二区三区| 久久国产人妖系列| 天堂蜜桃91精品| 亚洲激情图片qvod| 国产精品久久福利| 久久久久久免费网| 欧美mv日韩mv国产网站| 欧美日韩精品一区二区天天拍小说 | 色av成人天堂桃色av| 国产成人在线观看| 精品亚洲免费视频| 日韩制服丝袜av| 性做久久久久久久免费看| 亚洲欧美日韩一区二区| 国产精品毛片a∨一区二区三区| 日韩精品一区在线观看| 欧美日韩国产高清一区| 在线精品亚洲一区二区不卡| 99精品桃花视频在线观看| 成人av网站在线| 懂色av一区二区三区蜜臀 | 欧美国产日韩精品免费观看| 欧美精品一区二区三区在线| 91精品国产手机| 欧美高清dvd| 精品视频一区二区不卡| 欧美日韩亚洲综合| 欧美日韩一本到| 欧美三级视频在线观看| 欧美色图12p| 欧美日韩一区中文字幕| 欧美日本在线观看| 欧美日韩一级片在线观看| 欧美日韩国产精品自在自线| 欧美三级午夜理伦三级中视频| 欧美性xxxxxxxx| 欧美日韩美少妇| 欧美一区二区三区思思人| 69久久99精品久久久久婷婷| 91.com视频| 欧美一级xxx| 欧美成va人片在线观看| 欧美xxxxx牲另类人与| 精品久久一区二区三区| 2023国产精品视频| 久久精品视频网| 亚洲色大成网站www久久九九| 亚洲欧美区自拍先锋| 亚洲成a人片综合在线| 日韩国产在线一|