X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fwaiter.c;h=aca88eb4db75ade4fa28b971d4616be68bd92742;hb=6dca8ba7dec3b31acb7b43f5e4431676acf4e664;hp=c5a2829408215784952d047e272c12682e291c23;hpb=287a512f2b868c16132b894a8143a5faf0379ca8;p=lttng-tools.git diff --git a/src/common/waiter.c b/src/common/waiter.c index c5a282940..aca88eb4d 100644 --- a/src/common/waiter.c +++ b/src/common/waiter.c @@ -1,27 +1,14 @@ /* - * Copyright (C) 2012 - Mathieu Desnoyers - * 2017 - Jérémie Galarneau + * Copyright (C) 2012 Mathieu Desnoyers + * Copyright (C) 2017 Jérémie Galarneau * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This program 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 program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * This code is originally adapted from userspace-rcu's urcu-wait.h */ #include "waiter.h" #include #include -#include #include "error.h" #include @@ -39,7 +26,6 @@ enum waiter_state { WAITER_TEARDOWN = (1 << 2), }; -LTTNG_HIDDEN void lttng_waiter_init(struct lttng_waiter *waiter) { cds_wfs_node_init(&waiter->wait_queue_node); @@ -50,7 +36,6 @@ void lttng_waiter_init(struct lttng_waiter *waiter) /* * User must init "waiter" before passing its memory to waker thread. */ -LTTNG_HIDDEN void lttng_waiter_wait(struct lttng_waiter *waiter) { unsigned int i; @@ -97,7 +82,7 @@ skip_futex_wait: while (!(uatomic_read(&waiter->state) & WAITER_TEARDOWN)) { poll(NULL, 0, 10); } - assert(uatomic_read(&waiter->state) & WAITER_TEARDOWN); + LTTNG_ASSERT(uatomic_read(&waiter->state) & WAITER_TEARDOWN); DBG("End of waiter wait period"); } @@ -106,11 +91,10 @@ skip_futex_wait: * execution. In this scheme, the waiter owns the node memory, and we only allow * it to free this memory when it sees the WAITER_TEARDOWN flag. */ -LTTNG_HIDDEN void lttng_waiter_wake_up(struct lttng_waiter *waiter) { cmm_smp_mb(); - assert(uatomic_read(&waiter->state) == WAITER_WAITING); + LTTNG_ASSERT(uatomic_read(&waiter->state) == WAITER_WAITING); uatomic_set(&waiter->state, WAITER_WOKEN_UP); if (!(uatomic_read(&waiter->state) & WAITER_RUNNING)) { if (futex_noasync(&waiter->state, FUTEX_WAKE, 1,