mirror of
https://github.com/boostorg/thread.git
synced 2026-02-07 10:52:10 +00:00
Compare commits
30 Commits
pr/fix-cyg
...
boost-1.69
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d0f077ab2 | ||
|
|
dfe6cc3c49 | ||
|
|
330a0a15e6 | ||
|
|
f60dfdfad9 | ||
|
|
ccb1b99e3f | ||
|
|
aa444afc5c | ||
|
|
f1d464d0d5 | ||
|
|
57161ddbb6 | ||
|
|
9a7d21444f | ||
|
|
1b2bc4e451 | ||
|
|
e1b5f9d786 | ||
|
|
8b5cd5f02a | ||
|
|
5b2ffe7104 | ||
|
|
5af180ba36 | ||
|
|
340cc5ab61 | ||
|
|
9a3b8bb4b0 | ||
|
|
79f955e229 | ||
|
|
1da2a57124 | ||
|
|
00efec75d9 | ||
|
|
6c70eccb01 | ||
|
|
eb297ce86c | ||
|
|
502876f0e9 | ||
|
|
1a8229160e | ||
|
|
2be8908dcd | ||
|
|
24404dcae4 | ||
|
|
526e2d6554 | ||
|
|
377bb87ad5 | ||
|
|
180ca01c97 | ||
|
|
a6dede8199 | ||
|
|
d268106bf8 |
80
appveyor.yml
80
appveyor.yml
@@ -1,4 +1,5 @@
|
||||
# Copyright 2016, 2017 Peter Dimov
|
||||
# Copyright 2016-2018 Peter Dimov
|
||||
# Copyright 2018 Vicente Botet
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
@@ -12,48 +13,34 @@ branches:
|
||||
- develop
|
||||
- /feature\/.*/
|
||||
|
||||
platform:
|
||||
- x64
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- ARGS: --toolset=msvc-9.0 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-10.0 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-11.0 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-12.0 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-14.0 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-12.0 address-model=64 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags="/wd4244 /wd4459"
|
||||
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags="-std:c++latest /wd4244 /wd4459"
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
# TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0,msvc-12.0
|
||||
TOOLSET: msvc-12.0
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-14.0
|
||||
ADDRMD: 32
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags="/wd4244 /wd4459"
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
ARGS: --toolset=msvc-14.1 address-model=32 cxxflags="/wd4244 /wd4459"
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags="-std:c++latest /wd4244 /wd4459"
|
||||
- ARGS: --toolset=gcc address-model=64
|
||||
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||
- ARGS: --toolset=gcc address-model=64 cxxflags="-std=gnu++1z
|
||||
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||
- ARGS: --toolset=gcc address-model=32
|
||||
PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
|
||||
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
|
||||
PATH: C:\MinGW\bin;%PATH%
|
||||
|
||||
|
||||
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
# ARGS: --toolset=msvc-9.0
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
# ARGS: --toolset=msvc-10.0
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
# ARGS: --toolset=msvc-11.0
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
# ARGS: --toolset=msvc-12.0
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# ARGS: --toolset=msvc-14.0
|
||||
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# ARGS: --toolset=msvc-14.1
|
||||
TOOLSET: msvc-14.1
|
||||
CXXSTD: 17
|
||||
ADDRMD: 64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
ADDPATH: C:\cygwin\bin;
|
||||
TOOLSET: gcc
|
||||
CXXSTD: 14
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
ADDPATH: C:\cygwin64\bin;
|
||||
TOOLSET: gcc
|
||||
CXXSTD: 14
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
ADDPATH: C:\mingw\bin;
|
||||
TOOLSET: gcc
|
||||
CXXSTD: 14
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
|
||||
ADDPATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;
|
||||
TOOLSET: gcc
|
||||
CXXSTD: 14
|
||||
|
||||
install:
|
||||
- set BOOST_BRANCH=develop
|
||||
@@ -64,16 +51,15 @@ install:
|
||||
- git submodule update --init tools/build
|
||||
- git submodule update --init libs/config
|
||||
- git submodule update --init tools/boostdep
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\thread\
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\thread
|
||||
- python tools/boostdep/depinst/depinst.py thread
|
||||
- cmd /c bootstrap
|
||||
- b2 headers
|
||||
- b2 -d0 headers
|
||||
|
||||
build: off
|
||||
|
||||
test_script:
|
||||
- cd libs\config\test
|
||||
- ..\..\..\b2 config_info_travis_install %ARGS%
|
||||
- config_info_travis
|
||||
- cd ..\..\thread\test
|
||||
- ..\..\..\b2 --abbreviate-paths -j2 -l60 %ARGS%
|
||||
- PATH=%ADDPATH%%PATH%
|
||||
- if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD%
|
||||
- if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD%
|
||||
- b2 -j3 libs/thread/test toolset=%TOOLSET% %CXXSTD% %ADDRMD% variant=debug,release
|
||||
|
||||
@@ -43,9 +43,9 @@ build_steps: &build_steps
|
||||
- run:
|
||||
name: Build
|
||||
command: |
|
||||
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD <cxxflags>$DEFINES ;" > ~/user-config.jam
|
||||
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD <cxxflags>$CXXFLAGS <cxxflags>$DEFINES ;" > ~/user-config.jam
|
||||
cd ../boost-root
|
||||
./b2 -j8 -l60 libs/thread/test toolset=$TOOLSET
|
||||
./b2 -d2 -j8 -l60 libs/thread/test toolset=$TOOLSET
|
||||
|
||||
mac_build: &mac_build
|
||||
macos:
|
||||
@@ -154,6 +154,7 @@ jobs:
|
||||
- TOOLSET: "clang"
|
||||
- COMPILER: "clang++"
|
||||
- CXXSTD: "c++1z"
|
||||
- CXXFLAGS: "-Wno-unusable-partial-specialization"
|
||||
- DEFINES: "-DBOOST_THREAD_TEST_TIME_MS=100"
|
||||
|
||||
workflows:
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#ifdef BOOST_THREAD_PROVIDES_ONCE_CXX11
|
||||
struct once_flag
|
||||
{
|
||||
constexprr once_flag() noexcept;
|
||||
constexpr once_flag() noexcept;
|
||||
once_flag(const once_flag&) = delete;
|
||||
once_flag& operator=(const once_flag&) = delete;
|
||||
};
|
||||
|
||||
@@ -350,12 +350,19 @@ namespace boost
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
template <class T>
|
||||
typename decay<T>::type
|
||||
decay_copy(T&& t)
|
||||
{
|
||||
return boost::forward<T>(t);
|
||||
}
|
||||
template <class T>
|
||||
typename decay<T>::type
|
||||
decay_copy(T&& t)
|
||||
{
|
||||
return boost::forward<T>(t);
|
||||
}
|
||||
typedef void (*void_fct_ptr)();
|
||||
|
||||
// inline void_fct_ptr
|
||||
// decay_copy(void (&t)())
|
||||
// {
|
||||
// return &t;
|
||||
// }
|
||||
#else
|
||||
template <class T>
|
||||
typename decay<T>::type
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace boost
|
||||
{
|
||||
}
|
||||
|
||||
~thread_exception() throw()
|
||||
~thread_exception() BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{}
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace boost
|
||||
{
|
||||
}
|
||||
|
||||
~lock_error() throw()
|
||||
~lock_error() BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{}
|
||||
|
||||
};
|
||||
@@ -141,7 +141,7 @@ namespace boost
|
||||
}
|
||||
|
||||
|
||||
~thread_resource_error() throw()
|
||||
~thread_resource_error() BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{}
|
||||
|
||||
};
|
||||
|
||||
@@ -7,11 +7,10 @@
|
||||
"Vicente J. Botet Escriba"
|
||||
],
|
||||
"maintainers": [
|
||||
"Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>",
|
||||
"Niall Douglas <niall -at- nedprod.com>"
|
||||
"Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>"
|
||||
],
|
||||
"description":
|
||||
"Portable C++ multi-threading. C++11, C++14.",
|
||||
"Portable C++ multi-threading. C++03, C++11, C++14, C++17.",
|
||||
"std": [ "proposal" ],
|
||||
"category": [
|
||||
"Concurrent", "System"
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace boost
|
||||
|
||||
boost::detail::thread_data_base* get_current_thread_data()
|
||||
{
|
||||
boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
|
||||
boost::call_once(current_thread_tls_init_flag,&create_current_thread_tls_key);
|
||||
return (boost::detail::thread_data_base*)pthread_getspecific(current_thread_tls_key);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ void run_thread() {
|
||||
}
|
||||
|
||||
int main() {
|
||||
boost::thread t(run_thread);
|
||||
boost::thread t(&run_thread);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -179,13 +179,13 @@ namespace
|
||||
|
||||
void do_test_notify_all_following_notify_one_wakes_all_threads()
|
||||
{
|
||||
boost::thread thread1(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread2(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread1(&wait_for_condvar_and_increase_count);
|
||||
boost::thread thread2(&wait_for_condvar_and_increase_count);
|
||||
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
|
||||
multiple_wake_cond.notify_one();
|
||||
|
||||
boost::thread thread3(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread3(&wait_for_condvar_and_increase_count);
|
||||
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
|
||||
multiple_wake_cond.notify_one();
|
||||
|
||||
@@ -114,13 +114,13 @@ namespace
|
||||
|
||||
void do_test_multiple_notify_one_calls_wakes_multiple_threads()
|
||||
{
|
||||
boost::thread thread1(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread2(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread1(&wait_for_condvar_and_increase_count);
|
||||
boost::thread thread2(&wait_for_condvar_and_increase_count);
|
||||
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
|
||||
multiple_wake_cond.notify_one();
|
||||
|
||||
boost::thread thread3(wait_for_condvar_and_increase_count);
|
||||
boost::thread thread3(&wait_for_condvar_and_increase_count);
|
||||
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
|
||||
multiple_wake_cond.notify_one();
|
||||
|
||||
@@ -16,7 +16,7 @@ void do_nothing()
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_move_from_lvalue_on_construction)
|
||||
{
|
||||
boost::thread src(do_nothing);
|
||||
boost::thread src(&do_nothing);
|
||||
boost::thread::id src_id=src.get_id();
|
||||
boost::thread dest(boost::move(src));
|
||||
boost::thread::id dest_id=dest.get_id();
|
||||
@@ -27,7 +27,7 @@ BOOST_AUTO_TEST_CASE(test_thread_move_from_lvalue_on_construction)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_move_from_lvalue_on_assignment)
|
||||
{
|
||||
boost::thread src(do_nothing);
|
||||
boost::thread src(&do_nothing);
|
||||
boost::thread::id src_id=src.get_id();
|
||||
boost::thread dest;
|
||||
dest=boost::move(src);
|
||||
@@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(test_thread_move_from_lvalue_on_assignment)
|
||||
|
||||
boost::thread start_thread()
|
||||
{
|
||||
return boost::thread(do_nothing);
|
||||
return boost::thread(&do_nothing);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_move_from_rvalue_on_construction)
|
||||
|
||||
@@ -33,7 +33,7 @@ void call_once_thread()
|
||||
int my_once_value=0;
|
||||
for(unsigned i=0;i<loop_count;++i)
|
||||
{
|
||||
boost::call_once(flag, initialize_variable);
|
||||
boost::call_once(flag, &initialize_variable);
|
||||
my_once_value=var_to_init;
|
||||
if(my_once_value!=1)
|
||||
{
|
||||
|
||||
@@ -206,8 +206,8 @@ BOOST_AUTO_TEST_CASE(test_timed_join)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_swap)
|
||||
{
|
||||
boost::thread t(simple_thread);
|
||||
boost::thread t2(simple_thread);
|
||||
boost::thread t(&simple_thread);
|
||||
boost::thread t2(&simple_thread);
|
||||
boost::thread::id id1=t.get_id();
|
||||
boost::thread::id id2=t2.get_id();
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ void tf1()
|
||||
BOOST_AUTO_TEST_CASE(test_thread_exit_func_runs_when_thread_exits)
|
||||
{
|
||||
exit_func_thread_id=boost::thread::id();
|
||||
boost::thread t(tf1);
|
||||
boost::thread t(&tf1);
|
||||
boost::thread::id const t_id=t.get_id();
|
||||
t.join();
|
||||
BOOST_CHECK(exit_func_thread_id==t_id);
|
||||
|
||||
@@ -20,7 +20,7 @@ BOOST_AUTO_TEST_CASE(test_thread_id_for_default_constructed_thread_is_default_co
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_id_for_running_thread_is_not_default_constructed_id)
|
||||
{
|
||||
boost::thread t(do_nothing);
|
||||
boost::thread t(&do_nothing);
|
||||
BOOST_CHECK(t.get_id()!=boost::thread::id());
|
||||
t.join();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ void normal_function()
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_function_no_arguments)
|
||||
{
|
||||
boost::thread function(normal_function);
|
||||
boost::thread function(&normal_function);
|
||||
function.join();
|
||||
BOOST_CHECK(normal_function_called);
|
||||
}
|
||||
@@ -36,7 +36,7 @@ void normal_function_one_arg(int i)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_thread_function_one_argument)
|
||||
{
|
||||
boost::thread function(normal_function_one_arg,42);
|
||||
boost::thread function(&normal_function_one_arg,42);
|
||||
function.join();
|
||||
BOOST_CHECK_EQUAL(42,nfoa_res);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user