execution
1.0.1
Portable task execution, timers, and process lifecycle
Toggle main menu visibility
Loading...
Searching...
No Matches
libdispatch_executor_group.hpp
1
/*
2
Copyright 2026 Adobe
3
Distributed under the Boost Software License, Version 1.0.
4
(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
*/
6
7
/**************************************************************************************************/
8
9
#ifndef STLAB_CONCURRENCY_DETAIL_LIBDISPATCH_EXECUTOR_GROUP_HPP
10
#define STLAB_CONCURRENCY_DETAIL_LIBDISPATCH_EXECUTOR_GROUP_HPP
11
12
#include <stlab/execution/config.hpp>
13
14
#include <dispatch/dispatch.h>
15
16
#include <utility>
17
18
namespace
stlab
{
19
STLAB_EXECUTION_VERSION_NAMESPACE_BEGIN()
20
namespace execution_detail {
21
23
struct
group_t {
24
dispatch_group_t _group = dispatch_group_create();
25
27
group_t() =
default
;
28
30
group_t(
const
group_t&) =
delete
;
31
33
group_t(group_t&& a) noexcept : _group(std::exchange(a._group,
nullptr
)) {}
34
36
auto
operator=(
const
group_t&) -> group_t& =
delete
;
37
39
auto
operator=(group_t&& a)
noexcept
-> group_t& {
40
group_t previous(std::move(a));
41
std::swap(_group, previous._group);
42
return
*
this
;
43
}
44
46
~group_t();
47
};
48
50
auto
group() ->
const
group_t&;
51
52
}
// namespace execution_detail
53
STLAB_EXECUTION_VERSION_NAMESPACE_END()
54
}
// namespace stlab
55
56
/**************************************************************************************************/
57
58
#endif
59
60
/**************************************************************************************************/
stlab
Definition
default_executor.hpp:49
include
stlab
concurrency
detail
libdispatch_executor_group.hpp
Generated by
1.18.0