Ardour
8.12
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
#ifndef __libpbd_atomic_h__
20
#define __libpbd_atomic_h__
21
22
#include <atomic>
23
24
namespace
PBD
{
25
26
template
<
typename
T>
27
bool
atomic_dec_and_test
(std::atomic<T>& aval) {
return
(aval.fetch_sub (1) - 1) == 0; }
28
29
template
<
typename
T>
30
void
atomic_inc
(std::atomic<T>& aval) { (void) aval.fetch_add (1); }
31
32
}
33
34
#endif
/* __libpbd_atomic_h__ */
PBD
Definition:
axis_view.h:42
PBD::atomic_inc
void atomic_inc(std::atomic< T > &aval)
Definition:
atomic.h:30
PBD::atomic_dec_and_test
bool atomic_dec_and_test(std::atomic< T > &aval)
Definition:
atomic.h:27
libs
pbd
pbd
atomic.h
Generated on Mon Mar 10 2025 20:26:20 for Ardour by
1.9.1