thread.c

来自「非常好的dns解析软件」· C语言 代码 · 共 77 行

C
77
字号
/* * Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001, 2003  Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. *//* $Id: thread.c,v 1.12.18.3 2005/04/29 00:17:05 marka Exp $ *//*! \file */#include <config.h>#include <isc/thread.h>#include <isc/util.h>#ifndef THREAD_MINSTACKSIZE#define THREAD_MINSTACKSIZE		(64U * 1024)#endifisc_result_tisc_thread_create(isc_threadfunc_t func, isc_threadarg_t arg,		  isc_thread_t *thread){	pthread_attr_t attr;	size_t stacksize;	int ret;	pthread_attr_init(&attr);#if defined(HAVE_PTHREAD_ATTR_GETSTACKSIZE) && \    defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE)	ret = pthread_attr_getstacksize(&attr, &stacksize);	if (ret != 0)		return (ISC_R_UNEXPECTED);	if (stacksize < THREAD_MINSTACKSIZE) {		ret = pthread_attr_setstacksize(&attr, THREAD_MINSTACKSIZE);		if (ret != 0)			return (ISC_R_UNEXPECTED);	}#endif#if defined(PTHREAD_SCOPE_SYSTEM) && defined(NEED_PTHREAD_SCOPE_SYSTEM)	ret = pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);	if (ret != 0)		return (ISC_R_UNEXPECTED);#endif	ret = pthread_create(thread, &attr, func, arg);	if (ret != 0)		return (ISC_R_UNEXPECTED);	pthread_attr_destroy(&attr);	return (ISC_R_SUCCESS);}voidisc_thread_setconcurrency(unsigned int level) {#if defined(CALL_PTHREAD_SETCONCURRENCY)	(void)pthread_setconcurrency(level);#else	UNUSED(level);#endif}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?