FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
thread/test/test_scheduling_adaptor.cpp at develop · boostorg/thread · GitHub
boostorg
/
thread
Public
Notifications
You must be signed in to change notification settings
Fork
171
Star
213
Code
Issues
77
Pull requests
13
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
thread
/
test
/
test_scheduling_adaptor.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
55 lines (45 loc) · 1.47 KB
Breadcrumbs
thread
/
test
/
test_scheduling_adaptor.cpp
Copy path
File metadata and controls
55 lines (45 loc) · 1.47 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//
Copyright (C) 2014 Ian Forbed
//
Copyright (C) 2014 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)
//
#
include
<
boost/config.hpp
>
#
if
! defined BOOST_NO_CXX11_DECLTYPE
#
define
BOOST_RESULT_OF_USE_DECLTYPE
#
endif
#
define
BOOST_THREAD_VERSION
4
#
define
BOOST_THREAD_PROVIDES_EXECUTORS
#
include
<
boost/function.hpp
>
#
include
<
boost/bind/bind.hpp
>
#
include
<
boost/thread/executors/executor.hpp
>
#
include
<
boost/thread/executors/basic_thread_pool.hpp
>
#
include
<
boost/thread/executors/scheduling_adaptor.hpp
>
#
include
<
boost/chrono/chrono_io.hpp
>
#
include
<
boost/core/lightweight_test.hpp
>
using
namespace
boost
::chrono
;
typedef
boost::executors::basic_thread_pool thread_pool;
void
fn
(
int
x)
{
//
std::cout << "[" << __LINE__ << "] " << steady_clock::now() << std::endl;
std::cout << x << std::endl;
}
void
test_timing
(
const
int
n)
{
thread_pool
tp
(
4
);
boost::scheduling_adaptor<thread_pool>
sa
(tp);
for
(
int
i =
1
; i <= n; i++)
{
sa.
submit_after
(
boost::bind
(fn,i),
seconds
(i));
sa.
submit_after
(
boost::bind
(fn,i),
milliseconds
(i*
100
));
}
boost::this_thread::sleep_for
(
boost::chrono::seconds
(
10
));
}
int
main
()
{
steady_clock::time_point start =
steady_clock::now
();
test_timing
(
5
);
steady_clock::duration diff =
steady_clock::now
() - start;
BOOST_TEST
(diff >
seconds
(
5
));
return
boost::report_errors
();
}
Back
|
FazBrowse Home
|
New Git URL