/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Library/boost/libs/thread/test/test_barrier_void_fct.cpp
67 строк
1 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
// (C) Copyright 2013 Vicente J. Botet Escriba // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #define BOOST_THREAD_PROVIDES_INTERRUPTIONS #include <boost/thread/detail/config.hpp> #include <boost/thread/thread.hpp> #include <boost/thread/barrier.hpp> #include <boost/detail/lightweight_test.hpp> #include <vector> namespace { // Shared variables for generation barrier test long global_parameter; void void_fct() { global_parameter++; } const int N_THREADS=3; boost::barrier gen_barrier(N_THREADS, &void_fct); void barrier_thread() { for (int i = 0; i < 5; ++i) { gen_barrier.count_down_and_wait(); } } } // namespace void test_barrier() { boost::thread_group g; global_parameter = 0; try { for (int i = 0; i < N_THREADS; ++i) g.create_thread(&barrier_thread); g.join_all(); } catch(...) { BOOST_TEST(false); g.interrupt_all(); g.join_all(); //throw; } BOOST_TEST(global_parameter==5); } int main() { test_barrier(); return boost::report_errors(); }