1 
2 // lw_thread_test.cpp
3 //
4 // Copyright 2018 Peter Dimov
5 // Distributed under the Boost Software License, Version 1.0.
6 
7 #include <boost/detail/lightweight_thread.hpp>
8 #include <boost/detail/lightweight_test.hpp>
9 #include <boost/smart_ptr/detail/atomic_count.hpp>
10 
11 boost::detail::atomic_count count( 0 );
12 
f()13 void f()
14 {
15     ++count;
16 }
17 
main()18 int main()
19 {
20     int const N = 4;
21     boost::detail::lw_thread_t th[ N ] = {};
22 
23     for( int i = 0; i < N; ++i )
24     {
25         boost::detail::lw_thread_create( th[ i ], f );
26     }
27 
28     for( int i = 0; i < N; ++i )
29     {
30         boost::detail::lw_thread_join( th[ i ] );
31     }
32 
33     BOOST_TEST_EQ( count, N );
34 
35     return boost::report_errors();
36 }
37