Ardour
9.0-pre0-582-g084a23a80d
atomic.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2023 Paul Davis <paul@linuxaudiosystems.com>
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
*/
18
19
#pragma once
20
21
#include <atomic>
22
23
namespace
PBD
{
24
25
template
<
typename
T>
26
bool
atomic_dec_and_test
(std::atomic<T>& aval) {
return
(aval.fetch_sub (1) - 1) == 0; }
27
28
template
<
typename
T>
29
void
atomic_inc
(std::atomic<T>& aval) { (void) aval.fetch_add (1); }
30
31
}
32
PBD
Definition:
axis_view.h:42
PBD::atomic_inc
void atomic_inc(std::atomic< T > &aval)
Definition:
atomic.h:29
PBD::atomic_dec_and_test
bool atomic_dec_and_test(std::atomic< T > &aval)
Definition:
atomic.h:26
libs
pbd
pbd
atomic.h
Generated on Wed Dec 25 2024 05:43:56 for Ardour by
1.9.1