1ca2cf024391992fe14b2df7d3ae0f575d074452Evan Hunt * Copyright (C) 1998-2001, 2004, 2005, 2007, 2016, 2017 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrenceisc_thread_create(isc_threadfunc_t start, isc_threadarg_t arg,
1eda5e1a7ce97ea997f2cfbaaf6bee1da5ea0e7eBob Halley thread = (isc_thread_t)_beginthreadex(NULL, 0, start, arg, 0, &id);
9fbefe0ace2ae7dba287f914b278153004bef428Bob Halleyisc_thread_join(isc_thread_t thread, isc_threadresult_t *rp) {
9fbefe0ace2ae7dba287f914b278153004bef428Bob Halley if (rp != NULL && !GetExitCodeThread(thread, rp)) {
e76d4c91bfadf823f04dcca1c1c5bcc14c67671dAndreas Gustafsson * This is unnecessary on Win32 systems, but is here so that the
8b9c4592ed718c4187971f1104381faf538bf4f7Evan Huntisc_thread_setname(isc_thread_t thread, const char *name) {
ed6ca94ad75353d5344e2a456e7a8beb480a351fMark Andrewsisc_thread_key_getspecific(isc_thread_key_t key) {
ed6ca94ad75353d5344e2a456e7a8beb480a351fMark Andrewsisc_thread_key_setspecific(isc_thread_key_t key, void *value) {
ed6ca94ad75353d5344e2a456e7a8beb480a351fMark Andrews return (TlsSetValue(key, value) ? 0 : GetLastError());
ed6ca94ad75353d5344e2a456e7a8beb480a351fMark Andrewsisc_thread_key_create(isc_thread_key_t *key, void (*func)(void *)) {