head 1.3; access; symbols netbsd-11-0-RELEASE:1.2 netbsd-11-0-RC7:1.2 netbsd-11-0-RC6:1.2 bind-9-20-24:1.1.1.1 netbsd-11-0-RC5:1.2 bind-9-20-23:1.1.1.1 netbsd-11-0-RC4:1.2 bind-9-20-22:1.1.1.1 netbsd-11-0-RC3:1.2 netbsd-11-0-RC2:1.2 netbsd-11-0-RC1:1.2 bind-9-20-18:1.1.1.1 perseant-exfatfs:1.2.0.4 perseant-exfatfs-base-20250801:1.2 netbsd-11:1.2.0.2 netbsd-11-base:1.2 bind-9-20-11:1.1.1.1 bind-9-20-9:1.1.1.1 bind-9-20-4:1.1.1.1 ISC:1.1.1; locks; strict; comment @ * @; 1.3 date 2026.08.29.14.55.18; author christos; state dead; branches; next 1.2; commitid lcwtV60j3uJSLxTG; 1.2 date 2025.01.26.16.25.37; author christos; state Exp; branches 1.2.4.1; next 1.1; commitid n28cV5J7HVthU0HF; 1.1 date 2025.01.26.16.12.30; author christos; state Exp; branches 1.1.1.1; next ; commitid 7XWb8ViqVtrCP0HF; 1.2.4.1 date 2025.01.26.16.25.37; author perseant; state dead; branches; next 1.2.4.2; commitid 23j6GFaDws3O875G; 1.2.4.2 date 2025.08.02.05.53.52; author perseant; state Exp; branches; next ; commitid 23j6GFaDws3O875G; 1.1.1.1 date 2025.01.26.16.12.30; author christos; state Exp; branches; next ; commitid 7XWb8ViqVtrCP0HF; desc @@ 1.3 log @merge changes between 9.20.24 and 9.20.27 @ text @/* $NetBSD: helper.c,v 1.2 2025/01/26 16:25:37 christos Exp $ */ /* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * SPDX-License-Identifier: MPL-2.0 * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "async_p.h" #include "job_p.h" #include "loop_p.h" void isc_helper_run(isc_loop_t *loop, isc_job_cb cb, void *cbarg) { REQUIRE(VALID_LOOP(loop)); REQUIRE(cb != NULL); isc_loop_t *helper = &loop->loopmgr->helpers[loop->tid]; isc_job_t *job = isc_mem_get(helper->mctx, sizeof(*job)); *job = (isc_job_t){ .cb = cb, .cbarg = cbarg, }; cds_wfcq_node_init(&job->wfcq_node); /* * cds_wfcq_enqueue() is non-blocking and enqueues the job to async * queue. * * The function returns 'false' in case the queue was empty - in such * case we need to trigger the async callback. */ if (!cds_wfcq_enqueue(&helper->async_jobs.head, &helper->async_jobs.tail, &job->wfcq_node)) { int r = uv_async_send(&helper->async_trigger); UV_RUNTIME_CHECK(uv_async_send, r); } } @ 1.2 log @Merge conflicts between 9.18.30 and 9.20.4 @ text @d1 1 a1 1 /* $NetBSD$ */ @ 1.2.4.1 log @file helper.c was added on branch perseant-exfatfs on 2025-08-02 05:53:52 +0000 @ text @d1 70 @ 1.2.4.2 log @Sync with HEAD @ text @a0 70 /* $NetBSD: helper.c,v 1.2 2025/01/26 16:25:37 christos Exp $ */ /* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * SPDX-License-Identifier: MPL-2.0 * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "async_p.h" #include "job_p.h" #include "loop_p.h" void isc_helper_run(isc_loop_t *loop, isc_job_cb cb, void *cbarg) { REQUIRE(VALID_LOOP(loop)); REQUIRE(cb != NULL); isc_loop_t *helper = &loop->loopmgr->helpers[loop->tid]; isc_job_t *job = isc_mem_get(helper->mctx, sizeof(*job)); *job = (isc_job_t){ .cb = cb, .cbarg = cbarg, }; cds_wfcq_node_init(&job->wfcq_node); /* * cds_wfcq_enqueue() is non-blocking and enqueues the job to async * queue. * * The function returns 'false' in case the queue was empty - in such * case we need to trigger the async callback. */ if (!cds_wfcq_enqueue(&helper->async_jobs.head, &helper->async_jobs.tail, &job->wfcq_node)) { int r = uv_async_send(&helper->async_trigger); UV_RUNTIME_CHECK(uv_async_send, r); } } @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @Import bind-9.20.4. Previous was 9.18.30. The changes are too voluminous to list here and can be found in: https://downloads.isc.org/isc/bind9/cur/9.20/doc/arm/html/changelog.html @ text @@