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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pthread.h

?? “網絡安全技術實踐與代碼詳解”實例代碼
?? H
?? 第 1 頁 / 共 3 頁
字號:
/* This is an implementation of the threads API of POSIX 1003.1-2001.
 *
 * --------------------------------------------------------------------------
 *
 *      Pthreads-win32 - POSIX Threads Library for Win32
 *      Copyright(C) 1998 John E. Bossom
 *      Copyright(C) 1999,2003 Pthreads-win32 contributors
 * 
 *      Contact Email: rpj@callisto.canberra.edu.au
 * 
 *      The current list of contributors is contained
 *      in the file CONTRIBUTORS included with the source
 *      code distribution. The list can also be seen at the
 *      following World Wide Web location:
 *      http://sources.redhat.com/pthreads-win32/contributors.html
 * 
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2 of the License, or (at your option) any later version.
 * 
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *      Lesser General Public License for more details.
 * 
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library in the file COPYING.LIB;
 *      if not, write to the Free Software Foundation, Inc.,
 *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

#if !defined( PTHREAD_H )
#define PTHREAD_H

#undef PTW32_LEVEL

#if defined(_POSIX_SOURCE)
#define PTW32_LEVEL 0
/* Early POSIX */
#endif

#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
#undef PTW32_LEVEL
#define PTW32_LEVEL 1
/* Include 1b, 1c and 1d */
#endif

#if defined(INCLUDE_NP)
#undef PTW32_LEVEL
#define PTW32_LEVEL 2
/* Include Non-Portable extensions */
#endif

#define PTW32_LEVEL_MAX 3

#if !defined(PTW32_LEVEL)
#define PTW32_LEVEL PTW32_LEVEL_MAX
/* Include everything */
#endif

#ifdef _UWIN
#   define HAVE_STRUCT_TIMESPEC 1
#   define HAVE_SIGNAL_H	1
#   undef HAVE_CONFIG_H
#   pragma comment(lib, "pthread")
#endif

/*
 * -------------------------------------------------------------
 *
 *
 * Module: pthread.h
 *
 * Purpose:
 *	Provides an implementation of PThreads based upon the
 *	standard:
 *
 *		POSIX 1003.1-2001
 *  and
 *    The Single Unix Specification version 3
 *
 *    (these two are equivalent)
 *
 *	in order to enhance code portability between Windows,
 *  various commercial Unix implementations, and Linux.
 *
 *	See the ANNOUNCE file for a full list of conforming
 *	routines and defined constants, and a list of missing
 *	routines and constants not defined in this implementation.
 *
 * Authors:
 *	There have been many contributors to this library.
 *	The initial implementation was contributed by
 *	John Bossom, and several others have provided major
 *	sections or revisions of parts of the implementation.
 *	Often significant effort has been contributed to
 *	find and fix important bugs and other problems to
 *	improve the reliability of the library, which sometimes
 *	is not reflected in the amount of code which changed as
 *	result.
 *	As much as possible, the contributors are acknowledged
 *	in the ChangeLog file in the source code distribution
 *	where their changes are noted in detail.
 *
 *	Contributors are listed in the CONTRIBUTORS file.
 *
 *	As usual, all bouquets go to the contributors, and all
 *	brickbats go to the project maintainer.
 *
 * Maintainer:
 *	The code base for this project is coordinated and
 *	eventually pre-tested, packaged, and made available by
 *
 *		Ross Johnson <rpj@ise.canberra.edu.au>
 *
 * QA Testers:
 *	Ultimately, the library is tested in the real world by
 *	a host of competent and demanding scientists and
 *	engineers who report bugs and/or provide solutions
 *	which are then fixed or incorporated into subsequent
 *	versions of the library. Each time a bug is fixed, a
 *	test case is written to prove the fix and ensure
 *	that later changes to the code don't reintroduce the
 *	same error. The number of test cases is slowly growing
 *	and therefore so is the code reliability.
 *
 * Compliance:
 *	See the file ANNOUNCE for the list of implemented
 *	and not-implemented routines and defined options.
 *	Of course, these are all defined is this file as well.
 *
 * Web site:
 *	The source code and other information about this library
 *	are available from
 *
 *		http://sources.redhat.com/pthreads-win32/
 *
 * -------------------------------------------------------------
 */

/* Try to avoid including windows.h */
#if defined(__MINGW32__) && defined(__cplusplus)
/*
 * FIXME: The pthreadGCE.dll build gets linker unresolved errors
 * on pthread_key_create() unless windows.h is included here.
 * It appears to have something to do with an argument type mismatch.
 * Looking at tsd.o with 'nm' shows this line:
 * 00000000 T _pthread_key_create__FPP14pthread_key_t_PFPv_v
 * instead of
 * 00000000 T _pthread_key_create
 */
#define PTW32_INCLUDE_WINDOWS_H
#endif

#ifdef PTW32_INCLUDE_WINDOWS_H
#include <windows.h>
#endif

/*
 * -----------------
 * autoconf switches
 * -----------------
 */

#if HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */

#if PTW32_LEVEL >= PTW32_LEVEL_MAX

/* Try to avoid including windows.h */
#if defined(__MINGW32__) && defined(__cplusplus)
/*
 * FIXME: The pthreadGCE.dll build gets linker unresolved errors
 * on pthread_key_create() unless windows.h is included here.
 * It appears to have something to do with an argument type mismatch.
 * Looking at tsd.o with 'nm' shows this line:
 * 00000000 T _pthread_key_create__FPP14pthread_key_t_PFPv_v
 * instead of
 * 00000000 T _pthread_key_create
 */
#define PTW32_INCLUDE_WINDOWS_H
#endif

#ifdef PTW32_INCLUDE_WINDOWS_H
#include <windows.h>
#endif

#ifndef NEED_FTIME
#include <time.h>
#else /* NEED_FTIME */
/* use native WIN32 time API */
#endif /* NEED_FTIME */

#if HAVE_SIGNAL_H
#include <signal.h>
#endif /* HAVE_SIGNAL_H */

#include <setjmp.h>
#include <limits.h>

/*
 * Boolean values to make us independent of system includes.
 */
enum {
  PTW32_FALSE = 0,
  PTW32_TRUE = (! PTW32_FALSE)
};

/*
 * This is a duplicate of what is in the autoconf config.h,
 * which is only used when building the pthread-win32 libraries.
 */

#ifndef PTW32_CONFIG_H
#  if defined(WINCE)
#    define NEED_ERRNO
#    define NEED_SEM
#  endif
#  if defined(_UWIN) || defined(__MINGW32__)
#    define HAVE_MODE_T
#  endif
#endif

/*
 *
 */

#if PTW32_LEVEL >= PTW32_LEVEL_MAX
#ifdef NEED_ERRNO
#include "need_errno.h"
#else
#include <errno.h>
#endif
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */

/*
 * Several systems don't define ENOTSUP. If not, we use
 * the same value as Solaris.
 */
#ifndef ENOTSUP
#  define ENOTSUP 48
#endif

#ifndef ETIMEDOUT
#  define ETIMEDOUT 10060     /* This is the value in winsock.h. */
#endif

#include <sched.h>

/*
 * To avoid including windows.h we define only those things that we
 * actually need from it. I don't like the potential incompatibility that
 * this creates with future versions of windows.
 */
#ifndef PTW32_INCLUDE_WINDOWS_H
#ifndef HANDLE
# define PTW32__HANDLE_DEF
# define HANDLE void *
#endif
#ifndef DWORD
# define PTW32__DWORD_DEF
# define DWORD unsigned long
#endif
#endif

#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */

#ifndef HAVE_STRUCT_TIMESPEC
struct timespec {
	long tv_sec;
	long tv_nsec;
};
#endif /* HAVE_STRUCT_TIMESPEC */

#ifndef SIG_BLOCK
#define SIG_BLOCK 0
#endif /* SIG_BLOCK */

#ifndef SIG_UNBLOCK 
#define SIG_UNBLOCK 1
#endif /* SIG_UNBLOCK */

#ifndef SIG_SETMASK
#define SIG_SETMASK 2
#endif /* SIG_SETMASK */

#ifdef __cplusplus
extern "C"
{
#endif				/* __cplusplus */

/*
 * -------------------------------------------------------------
 *
 * POSIX 1003.1-2001 Options
 * =========================
 *
 * _POSIX_THREADS (set)
 *			If set, you can use threads
 *
 * _POSIX_THREAD_ATTR_STACKSIZE (set)
 *			If set, you can control the size of a thread's
 *			stack
 *				pthread_attr_getstacksize
 *				pthread_attr_setstacksize
 *
 * _POSIX_THREAD_ATTR_STACKADDR (not set)
 *			If set, you can allocate and control a thread's
 *			stack. If not supported, the following functions
 *			will return ENOSYS, indicating they are not
 *			supported:
 *				pthread_attr_getstackaddr
 *				pthread_attr_setstackaddr
 *
 * _POSIX_THREAD_PRIORITY_SCHEDULING (set)
 *			If set, you can use realtime scheduling.
 *			Indicates the availability of:
 *				pthread_attr_getinheritsched
 *				pthread_attr_getschedparam
 *				pthread_attr_getschedpolicy
 *				pthread_attr_getscope
 *				pthread_attr_setinheritsched
 *				pthread_attr_setschedparam
 *				pthread_attr_setschedpolicy
 *				pthread_attr_setscope
 *				pthread_getschedparam
 *				pthread_setschedparam
 *				sched_get_priority_max
 *				sched_get_priority_min
 *				sched_rr_set_interval
 *
 * _POSIX_THREAD_PRIO_INHERIT (not set)
 *			If set, you can create priority inheritance
 *			mutexes.
 *				pthread_mutexattr_getprotocol +
 *				pthread_mutexattr_setprotocol +
 *
 * _POSIX_THREAD_PRIO_PROTECT (not set)
 *			If set, you can create priority ceiling mutexes
 *			Indicates the availability of:
 *				pthread_mutex_getprioceiling
 *				pthread_mutex_setprioceiling
 *				pthread_mutexattr_getprioceiling
 *				pthread_mutexattr_getprotocol	  +
 *				pthread_mutexattr_setprioceiling
 *				pthread_mutexattr_setprotocol	  +
 *
 * _POSIX_THREAD_PROCESS_SHARED (not set)
 *			If set, you can create mutexes and condition
 *			variables that can be shared with another
 *			process.If set, indicates the availability
 *			of:
 *				pthread_mutexattr_getpshared
 *				pthread_mutexattr_setpshared
 *				pthread_condattr_getpshared
 *				pthread_condattr_setpshared
 *
 * _POSIX_THREAD_SAFE_FUNCTIONS (set)
 *			If set you can use the special *_r library
 *			functions that provide thread-safe behaviour
 *
 * _POSIX_READER_WRITER_LOCKS (set)
 *			If set, you can use read/write locks
 *
 * _POSIX_SPIN_LOCKS (set)
 *			If set, you can use spin locks
 *
 * _POSIX_BARRIERS (set)
 *			If set, you can use barriers
 *
 *	+ These functions provide both 'inherit' and/or
 *	  'protect' protocol, based upon these macro
 *	  settings.
 *
 * POSIX 1003.1-2001 Limits
 * ===========================
 *
 * 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).
 *
 * _POSIX_SEM_NSEMS_MAX
 *	The maximum number of semaphores a process can have.
 *	(only defined if not already defined)
 *
 * _POSIX_SEM_VALUE_MAX
 *	The maximum value a semaphore can have.
 *	(only defined if not already defined)
 *
 * -------------------------------------------------------------
 */

/*
 * POSIX Options
 */
#ifndef _POSIX_THREADS
#define _POSIX_THREADS
#endif

#ifndef _POSIX_READER_WRITER_LOCKS
#define _POSIX_READER_WRITER_LOCKS
#endif

#ifndef _POSIX_SPIN_LOCKS
#define _POSIX_SPIN_LOCKS
#endif

#ifndef _POSIX_BARRIERS
#define _POSIX_BARRIERS
#endif

#define _POSIX_THREAD_SAFE_FUNCTIONS
#define _POSIX_THREAD_ATTR_STACKSIZE
#define _POSIX_THREAD_PRIORITY_SCHEDULING

#if defined( KLUDGE )
/*
 * The following are not supported
 */
#define _POSIX_THREAD_ATTR_STACKADDR

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美麻豆| 91麻豆精品国产91久久久资源速度 | 欧美男人的天堂一二区| 亚洲香肠在线观看| 日韩亚洲欧美成人一区| 激情小说亚洲一区| 中文字幕在线不卡| 欧美曰成人黄网| 日韩黄色免费网站| 欧美精品一区二区三区在线| 精品一区精品二区高清| 国产精品沙发午睡系列990531| 99免费精品在线观看| 亚洲精品视频观看| 日韩一二三四区| 成人综合婷婷国产精品久久| 亚洲精品视频在线| 日韩欧美色综合网站| 成人免费视频一区| 亚洲一区二区中文在线| 亚洲精品在线观| 91色在线porny| 另类成人小视频在线| 久久精品视频免费| 欧美日韩视频专区在线播放| 精品一区二区三区久久| 亚洲精品高清在线| 日韩你懂的电影在线观看| 成人av在线资源网| 美女视频黄 久久| 亚洲欧洲三级电影| 欧美不卡视频一区| 欧美亚洲综合在线| 国产91在线观看丝袜| 亚洲18女电影在线观看| 国产亚洲欧美色| 3atv在线一区二区三区| 国产91在线|亚洲| 强制捆绑调教一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 日韩欧美国产综合| 欧洲精品在线观看| 成人免费高清在线观看| 毛片不卡一区二区| 五月婷婷欧美视频| 亚洲丝袜自拍清纯另类| 久久久久久久性| 欧美一级欧美三级在线观看 | 久久草av在线| 亚洲一区二区三区三| 中文字幕va一区二区三区| 7777精品伊人久久久大香线蕉的 | 3atv一区二区三区| 欧美色中文字幕| 91麻豆精品秘密| 成人深夜视频在线观看| 麻豆国产欧美日韩综合精品二区 | 亚洲色欲色欲www在线观看| 精品成人在线观看| 日韩一区二区在线观看视频| 欧美三级韩国三级日本一级| 91视频免费观看| 成人app下载| 成人性生交大片免费看视频在线| 精品一区二区在线观看| 蜜桃视频免费观看一区| 日韩黄色免费电影| 日本午夜精品一区二区三区电影| 亚洲国产精品久久久男人的天堂| 亚洲美女在线国产| 亚洲色图另类专区| 亚洲色图制服诱惑| 亚洲女同一区二区| 亚洲激情综合网| 亚洲综合自拍偷拍| 亚洲国产成人porn| 亚洲综合清纯丝袜自拍| 一区二区在线观看不卡| 亚洲婷婷综合色高清在线| 国产拍揄自揄精品视频麻豆| 2023国产精品视频| 国产视频在线观看一区二区三区| 国产网红主播福利一区二区| 久久久久久久综合色一本| 日本一区二区三区电影| 亚洲国产精品ⅴa在线观看| 国产精品三级av| 亚洲免费在线视频一区 二区| 一区二区欧美视频| 天天影视网天天综合色在线播放| 天堂一区二区在线| 久久国产精品99精品国产| 精品一区二区三区影院在线午夜| 精品在线你懂的| 成人av在线影院| 欧美视频在线不卡| 日韩视频免费观看高清完整版在线观看 | 制服丝袜激情欧洲亚洲| 日韩欧美的一区二区| 久久精品无码一区二区三区 | 综合电影一区二区三区| 亚洲另类在线一区| 日韩电影免费一区| 国产成人在线观看免费网站| 99精品在线观看视频| 欧美另类一区二区三区| 精品国产免费人成电影在线观看四季| 久久久夜色精品亚洲| 亚洲视频一区二区在线观看| 三级在线观看一区二区| 国产精品一区免费在线观看| 97精品电影院| 日韩午夜激情电影| 自拍偷自拍亚洲精品播放| 五月天一区二区| 国产精华液一区二区三区| 色婷婷综合久色| 精品国产乱码久久久久久蜜臀| 国产精品素人一区二区| 日本亚洲最大的色成网站www| 国产成人精品午夜视频免费| 欧美日韩一区二区三区不卡| 久久久夜色精品亚洲| 亚洲成av人影院| 福利一区二区在线观看| 91麻豆精品国产91久久久久久久久| 国产丝袜美腿一区二区三区| 舔着乳尖日韩一区| 99国产精品视频免费观看| 亚洲精品一区二区三区在线观看 | 国产欧美一区二区在线观看| 亚洲第一电影网| aa级大片欧美| 国产人久久人人人人爽| 日韩电影网1区2区| 欧美在线三级电影| 中文字幕在线不卡| 国产激情视频一区二区三区欧美| 7777精品久久久大香线蕉 | 午夜欧美在线一二页| 成人av网站在线观看免费| 日韩精品专区在线影院重磅| 亚洲一区二区视频在线| 99麻豆久久久国产精品免费| 精品国产伦一区二区三区观看方式| 亚洲成人手机在线| 色婷婷国产精品综合在线观看| 国产视频一区二区在线观看| 久久精品国产色蜜蜜麻豆| 欧美日韩精品一区二区三区四区| 亚洲欧美激情小说另类| 97精品久久久午夜一区二区三区 | 亚洲综合在线五月| 97精品视频在线观看自产线路二| 久久婷婷综合激情| 九色综合狠狠综合久久| 欧美一激情一区二区三区| 日日嗨av一区二区三区四区| 欧美午夜一区二区三区免费大片| 亚洲女同ⅹxx女同tv| 91免费视频观看| 亚洲激情成人在线| 在线免费精品视频| 一区二区三区波多野结衣在线观看 | av在线综合网| 国产精品午夜久久| 不卡区在线中文字幕| 国产精品久久久久久久久搜平片| 国产精品一区二区在线观看不卡 | 日韩精品一区第一页| 欧美私人免费视频| 日韩国产一二三区| 日韩一区二区影院| 久久激情五月激情| 国产片一区二区| 97se亚洲国产综合自在线观| 中文字幕在线不卡一区二区三区 | 一级日本不卡的影视| 欧美性生活大片视频| 性欧美疯狂xxxxbbbb| 正在播放亚洲一区| 久久国产三级精品| 久久精品一二三| 91玉足脚交白嫩脚丫在线播放| 成人欧美一区二区三区视频网页| 91免费视频网| 偷拍一区二区三区| 精品国产免费人成电影在线观看四季| 国产精品一区二区无线| 最近中文字幕一区二区三区| 色狠狠综合天天综合综合| 亚洲专区一二三| 欧美一卡2卡三卡4卡5免费| 国产乱码精品一区二区三区五月婷| 国产日韩影视精品| 91免费观看国产| 日本人妖一区二区| 国产欧美精品国产国产专区 | 欧美肥妇毛茸茸| 国产一区在线不卡|