12#ifndef OPENVPN_COMMON_STOP_H
13#define OPENVPN_COMMON_STOP_H
34 Scope(
Stop *stop_arg, std::function<
void()> &&method_arg)
36 method(std::move(method_arg)),
39 constexpr int stop_index_limit = 1000;
42 std::lock_guard<std::recursive_mutex> lock(
stop->
mutex);
50 if (
index > stop_index_limit)
51 throw openvpn_stop_limit(
"Stop count limit exceeded");
63 std::lock_guard<std::recursive_mutex> lock(
stop->
mutex);
87 std::lock_guard<std::recursive_mutex> lock(
mutex);
Scope & operator=(const Scope &)=delete
Scope(Stop *stop_arg, std::function< void()> &&method_arg)
const std::function< void()> method
Scope(const Scope &)=delete
volatile bool stop_called
Stop & operator=(const Stop &)=delete
std::recursive_mutex mutex
static bool is_triggered(const Stop *stop)
std::vector< Scope * > scopes
Stop(const Stop &)=delete
#define OPENVPN_EXCEPTION_INHERIT(B, C)