Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
c++ /
12 /
Delete
Unzip
Name
Size
Permission
Date
Action
backward
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
bits
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
debug
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
decimal
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
experimental
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
ext
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
parallel
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
pstl
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
tr1
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
tr2
[ DIR ]
drwxr-xr-x
2025-10-28 07:06
algorithm
2.94
KB
-rw-r--r--
2025-04-07 11:26
any
18.38
KB
-rw-r--r--
2025-04-07 11:26
array
14.61
KB
-rw-r--r--
2025-04-07 11:26
atomic
46.67
KB
-rw-r--r--
2025-04-07 11:26
barrier
7.57
KB
-rw-r--r--
2025-04-07 11:26
bit
13.89
KB
-rw-r--r--
2025-04-07 11:26
bitset
44.92
KB
-rw-r--r--
2025-04-07 11:26
cassert
1.61
KB
-rw-r--r--
2025-04-07 11:26
ccomplex
1.3
KB
-rw-r--r--
2025-04-07 11:26
cctype
2.35
KB
-rw-r--r--
2025-04-07 11:26
cerrno
1.73
KB
-rw-r--r--
2025-04-07 11:26
cfenv
2
KB
-rw-r--r--
2025-04-07 11:26
cfloat
1.84
KB
-rw-r--r--
2025-04-07 11:26
charconv
20.49
KB
-rw-r--r--
2025-04-07 11:26
chrono
58.31
KB
-rw-r--r--
2025-04-07 11:26
cinttypes
2.11
KB
-rw-r--r--
2025-04-07 11:26
ciso646
1.43
KB
-rw-r--r--
2025-04-07 11:26
climits
1.87
KB
-rw-r--r--
2025-04-07 11:26
clocale
1.86
KB
-rw-r--r--
2025-04-07 11:26
cmath
48.23
KB
-rw-r--r--
2025-04-07 11:26
codecvt
5.15
KB
-rw-r--r--
2025-04-07 11:26
compare
36.77
KB
-rw-r--r--
2025-04-07 11:26
complex
54.63
KB
-rw-r--r--
2025-04-07 11:26
complex.h
1.56
KB
-rw-r--r--
2025-04-07 11:26
concepts
11.94
KB
-rw-r--r--
2025-04-07 11:26
condition_variable
12.48
KB
-rw-r--r--
2025-04-07 11:26
coroutine
9.58
KB
-rw-r--r--
2025-04-07 11:26
csetjmp
1.9
KB
-rw-r--r--
2025-04-07 11:26
csignal
1.81
KB
-rw-r--r--
2025-04-07 11:26
cstdalign
1.37
KB
-rw-r--r--
2025-04-07 11:26
cstdarg
1.82
KB
-rw-r--r--
2025-04-07 11:26
cstdbool
1.37
KB
-rw-r--r--
2025-04-07 11:26
cstddef
6.11
KB
-rw-r--r--
2025-04-07 11:26
cstdint
2.28
KB
-rw-r--r--
2025-04-07 11:26
cstdio
4.33
KB
-rw-r--r--
2025-04-07 11:26
cstdlib
6.18
KB
-rw-r--r--
2025-04-07 11:26
cstring
3.08
KB
-rw-r--r--
2025-04-07 11:26
ctgmath
1.33
KB
-rw-r--r--
2025-04-07 11:26
ctime
2.24
KB
-rw-r--r--
2025-04-07 11:26
cuchar
2.84
KB
-rw-r--r--
2025-04-07 11:26
cwchar
6.39
KB
-rw-r--r--
2025-04-07 11:26
cwctype
2.73
KB
-rw-r--r--
2025-04-07 11:26
cxxabi.h
21.76
KB
-rw-r--r--
2025-04-07 11:26
deque
4.35
KB
-rw-r--r--
2025-04-07 11:26
exception
5.29
KB
-rw-r--r--
2025-04-07 11:26
execution
1.76
KB
-rw-r--r--
2025-04-07 11:26
expected
33.11
KB
-rw-r--r--
2025-04-07 11:26
fenv.h
1.97
KB
-rw-r--r--
2025-04-07 11:26
filesystem
1.61
KB
-rw-r--r--
2025-04-07 11:26
forward_list
2.63
KB
-rw-r--r--
2025-04-07 11:26
fstream
39.73
KB
-rw-r--r--
2025-04-07 11:26
functional
42.3
KB
-rw-r--r--
2025-04-07 11:26
future
51.12
KB
-rw-r--r--
2025-04-07 11:26
initializer_list
2.97
KB
-rw-r--r--
2025-04-07 11:26
iomanip
16.16
KB
-rw-r--r--
2025-04-07 11:26
ios
1.56
KB
-rw-r--r--
2025-04-07 11:26
iosfwd
8.16
KB
-rw-r--r--
2025-04-07 11:26
iostream
2.63
KB
-rw-r--r--
2025-04-07 11:26
istream
33.3
KB
-rw-r--r--
2025-04-07 11:26
iterator
2.69
KB
-rw-r--r--
2025-04-07 11:26
latch
2.67
KB
-rw-r--r--
2025-04-07 11:26
limits
70.04
KB
-rw-r--r--
2025-04-07 11:26
list
3.57
KB
-rw-r--r--
2025-04-07 11:26
locale
1.45
KB
-rw-r--r--
2025-04-07 11:26
map
4.04
KB
-rw-r--r--
2025-04-07 11:26
math.h
4.47
KB
-rw-r--r--
2025-04-07 11:26
memory
4.44
KB
-rw-r--r--
2025-04-07 11:26
memory_resource
25.26
KB
-rw-r--r--
2025-04-07 11:26
mutex
25.4
KB
-rw-r--r--
2025-04-07 11:26
new
8.45
KB
-rw-r--r--
2025-04-07 11:26
numbers
6.1
KB
-rw-r--r--
2025-04-07 11:26
numeric
25.37
KB
-rw-r--r--
2025-04-07 11:26
optional
43.4
KB
-rw-r--r--
2025-04-07 11:26
ostream
25.31
KB
-rw-r--r--
2025-04-07 11:26
queue
2.41
KB
-rw-r--r--
2025-04-07 11:26
random
1.65
KB
-rw-r--r--
2025-04-07 11:26
ranges
117.31
KB
-rw-r--r--
2025-04-07 11:26
ratio
19.81
KB
-rw-r--r--
2025-04-07 11:26
regex
3.04
KB
-rw-r--r--
2025-04-07 11:26
scoped_allocator
17.24
KB
-rw-r--r--
2025-04-07 11:26
semaphore
2.93
KB
-rw-r--r--
2025-04-07 11:26
set
3.9
KB
-rw-r--r--
2025-04-07 11:26
shared_mutex
24.02
KB
-rw-r--r--
2025-04-07 11:26
source_location
2.68
KB
-rw-r--r--
2025-04-07 11:26
span
12.82
KB
-rw-r--r--
2025-04-07 11:26
spanstream
12.07
KB
-rw-r--r--
2025-04-07 11:26
sstream
38.31
KB
-rw-r--r--
2025-04-07 11:26
stack
2.33
KB
-rw-r--r--
2025-04-07 11:26
stacktrace
21.02
KB
-rw-r--r--
2025-04-07 11:26
stdatomic.h
3.97
KB
-rw-r--r--
2025-04-07 11:26
stdexcept
9.65
KB
-rw-r--r--
2025-04-07 11:26
stdlib.h
2.2
KB
-rw-r--r--
2025-04-07 11:26
stop_token
15.61
KB
-rw-r--r--
2025-04-07 11:26
streambuf
29.19
KB
-rw-r--r--
2025-04-07 11:26
string
4.69
KB
-rw-r--r--
2025-04-07 11:26
string_view
25.55
KB
-rw-r--r--
2025-04-07 11:26
syncstream
8.13
KB
-rw-r--r--
2025-04-07 11:26
system_error
14.65
KB
-rw-r--r--
2025-04-07 11:26
tgmath.h
1.33
KB
-rw-r--r--
2025-04-07 11:26
thread
6.68
KB
-rw-r--r--
2025-04-07 11:26
tuple
61.37
KB
-rw-r--r--
2025-04-07 11:26
type_traits
107.81
KB
-rw-r--r--
2025-04-07 11:26
typeindex
3.43
KB
-rw-r--r--
2025-04-07 11:26
typeinfo
8.11
KB
-rw-r--r--
2025-04-07 11:26
unordered_map
3.62
KB
-rw-r--r--
2025-04-07 11:26
unordered_set
3.48
KB
-rw-r--r--
2025-04-07 11:26
utility
6.89
KB
-rw-r--r--
2025-04-07 11:26
valarray
39.82
KB
-rw-r--r--
2025-04-07 11:26
variant
63.95
KB
-rw-r--r--
2025-04-07 11:26
vector
4.7
KB
-rw-r--r--
2025-04-07 11:26
version
10.98
KB
-rw-r--r--
2025-04-07 11:26
Save
Rename
// <barrier> -*- C++ -*- // Copyright (C) 2020-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library 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 General Public License for more details. // You should have received a copy of the GNU General Public License along // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. // This implementation is based on libcxx/include/barrier //===-- barrier.h --------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===---------------------------------------------------------------===// /** @file include/barrier * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_BARRIER #define _GLIBCXX_BARRIER 1 #pragma GCC system_header #if __cplusplus > 201703L #include <bits/atomic_base.h> #if __cpp_lib_atomic_wait && __cpp_aligned_new #include <bits/std_thread.h> #include <bits/unique_ptr.h> #include <array> #define __cpp_lib_barrier 201907L namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __empty_completion { _GLIBCXX_ALWAYS_INLINE void operator()() noexcept { } }; /* The default implementation of __tree_barrier is a classic tree barrier. It looks different from literature pseudocode for two main reasons: 1. Threads that call into std::barrier functions do not provide indices, so a numbering step is added before the actual barrier algorithm, appearing as an N+1 round to the N rounds of the tree barrier. 2. A great deal of attention has been paid to avoid cache line thrashing by flattening the tree structure into cache-line sized arrays, that are indexed in an efficient way. */ enum class __barrier_phase_t : unsigned char { }; template<typename _CompletionF> class __tree_barrier { using __atomic_phase_ref_t = std::__atomic_ref<__barrier_phase_t>; using __atomic_phase_const_ref_t = std::__atomic_ref<const __barrier_phase_t>; static constexpr auto __phase_alignment = __atomic_phase_ref_t::required_alignment; using __tickets_t = std::array<__barrier_phase_t, 64>; struct alignas(64) /* naturally-align the heap state */ __state_t { alignas(__phase_alignment) __tickets_t __tickets; }; ptrdiff_t _M_expected; unique_ptr<__state_t[]> _M_state; __atomic_base<ptrdiff_t> _M_expected_adjustment; _CompletionF _M_completion; alignas(__phase_alignment) __barrier_phase_t _M_phase; bool _M_arrive(__barrier_phase_t __old_phase, size_t __current) { const auto __old_phase_val = static_cast<unsigned char>(__old_phase); const auto __half_step = static_cast<__barrier_phase_t>(__old_phase_val + 1); const auto __full_step = static_cast<__barrier_phase_t>(__old_phase_val + 2); size_t __current_expected = _M_expected; __current %= ((_M_expected + 1) >> 1); for (int __round = 0; ; ++__round) { if (__current_expected <= 1) return true; size_t const __end_node = ((__current_expected + 1) >> 1), __last_node = __end_node - 1; for ( ; ; ++__current) { if (__current == __end_node) __current = 0; auto __expect = __old_phase; __atomic_phase_ref_t __phase(_M_state[__current] .__tickets[__round]); if (__current == __last_node && (__current_expected & 1)) { if (__phase.compare_exchange_strong(__expect, __full_step, memory_order_acq_rel)) break; // I'm 1 in 1, go to next __round } else if (__phase.compare_exchange_strong(__expect, __half_step, memory_order_acq_rel)) { return false; // I'm 1 in 2, done with arrival } else if (__expect == __half_step) { if (__phase.compare_exchange_strong(__expect, __full_step, memory_order_acq_rel)) break; // I'm 2 in 2, go to next __round } } __current_expected = __last_node + 1; __current >>= 1; } } public: using arrival_token = __barrier_phase_t; static constexpr ptrdiff_t max() noexcept { return __PTRDIFF_MAX__; } __tree_barrier(ptrdiff_t __expected, _CompletionF __completion) : _M_expected(__expected), _M_expected_adjustment(0), _M_completion(move(__completion)), _M_phase(static_cast<__barrier_phase_t>(0)) { size_t const __count = (_M_expected + 1) >> 1; _M_state = std::make_unique<__state_t[]>(__count); } [[nodiscard]] arrival_token arrive(ptrdiff_t __update) { std::hash<std::thread::id> __hasher; size_t __current = __hasher(std::this_thread::get_id()); __atomic_phase_ref_t __phase(_M_phase); const auto __old_phase = __phase.load(memory_order_relaxed); const auto __cur = static_cast<unsigned char>(__old_phase); for(; __update; --__update) { if(_M_arrive(__old_phase, __current)) { _M_completion(); _M_expected += _M_expected_adjustment.load(memory_order_relaxed); _M_expected_adjustment.store(0, memory_order_relaxed); auto __new_phase = static_cast<__barrier_phase_t>(__cur + 2); __phase.store(__new_phase, memory_order_release); __phase.notify_all(); } } return __old_phase; } void wait(arrival_token&& __old_phase) const { __atomic_phase_const_ref_t __phase(_M_phase); auto const __test_fn = [=] { return __phase.load(memory_order_acquire) != __old_phase; }; std::__atomic_wait_address(&_M_phase, __test_fn); } void arrive_and_drop() { _M_expected_adjustment.fetch_sub(1, memory_order_relaxed); (void)arrive(1); } }; template<typename _CompletionF = __empty_completion> class barrier { // Note, we may introduce a "central" barrier algorithm at some point // for more space constrained targets using __algorithm_t = __tree_barrier<_CompletionF>; __algorithm_t _M_b; public: class arrival_token final { public: arrival_token(arrival_token&&) = default; arrival_token& operator=(arrival_token&&) = default; ~arrival_token() = default; private: friend class barrier; using __token = typename __algorithm_t::arrival_token; explicit arrival_token(__token __tok) noexcept : _M_tok(__tok) { } __token _M_tok; }; static constexpr ptrdiff_t max() noexcept { return __algorithm_t::max(); } explicit barrier(ptrdiff_t __count, _CompletionF __completion = _CompletionF()) : _M_b(__count, std::move(__completion)) { } barrier(barrier const&) = delete; barrier& operator=(barrier const&) = delete; [[nodiscard]] arrival_token arrive(ptrdiff_t __update = 1) { return arrival_token{_M_b.arrive(__update)}; } void wait(arrival_token&& __phase) const { _M_b.wait(std::move(__phase._M_tok)); } void arrive_and_wait() { wait(arrive()); } void arrive_and_drop() { _M_b.arrive_and_drop(); } }; _GLIBCXX_END_NAMESPACE_VERSION } // namespace #endif // __cpp_lib_atomic_wait && __cpp_aligned_new #endif // __cplusplus > 201703L #endif // _GLIBCXX_BARRIER