Commit Graph

2805 Commits

Author SHA1 Message Date
Christopher Kohlhoff
9995748ebc Remove deprecated file 'asio/impl/src.cpp'. 2021-01-16 10:14:17 +11:00
Christopher Kohlhoff
77ed33821d Add std::hash specialisations for ip::basic_endpoint<>. 2021-01-09 11:03:52 +11:00
Christopher Kohlhoff
0407653764 Add std::hash specialisations for IP addresses. 2021-01-09 11:03:52 +11:00
Christopher Kohlhoff
54269864e6 Add ip::port_type type alias. 2021-01-09 11:03:52 +11:00
Christopher Kohlhoff
d87b482c34 Add ip::scope_id_type type alias. 2021-01-09 11:03:52 +11:00
Pavel A. Lebedev
00d6e4ccca Fix outstanding_work.tracked executor move assignment.
Move assignments for io_context and thread pool executors are missing
the logic present in copy assignments that finishes work on old contexts.
This causes the following example to hang:

#include <boost/asio/execution/outstanding_work.hpp>
#include <boost/asio/prefer.hpp>
#include <boost/asio/static_thread_pool.hpp>

int main()
{
    asio::static_thread_pool tp1{1},tp2{1};
    {
        auto work = asio::prefer(tp1.get_executor(),
            asio::execution::outstanding_work.tracked);
        work = asio::prefer(tp2.get_executor(),
            asio::execution::outstanding_work.tracked);
    }
    tp1.join();
    tp2.join();
}
2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
5f39960dd9 Make the thread_pool executor's execute, require, and query members private. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
ae0f7878bb Make system_executor's execute, require, and query members private. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
b88b70a49f Make the io_context executor's execute, require, and query functions private. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
171328a6cb Add friendship support to execution::occupancy property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
3c55c553d1 Add friendship support to execution::context_as property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
40ab600042 Add friendship support to execution::context property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
27ce053e07 Add friendship support to execution::allocator property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
e704307b2a Add friendship support to execution::relationship property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
d6ec314dec Add friendship support to execution::outstanding_work property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
403f559d2c Add friendship support to execution::mapping property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
c541383336 Add friendship support to execution::bulk_guarantee property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
0106229b7e Add friendship support to execution::blocking_adaptation property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
55df45012d Add friendship support to execution::blocking property. 2021-01-07 19:37:26 +11:00
Christopher Kohlhoff
962a85f7f5 Add friendship support to require_concept CPO. 2021-01-06 13:00:17 +11:00
Christopher Kohlhoff
a3992b6d8e Add friendship support to prefer CPO. 2021-01-06 12:04:24 +11:00
Christopher Kohlhoff
11f7ae1fab Add friendship support to require CPO. 2021-01-06 11:56:12 +11:00
Christopher Kohlhoff
9fb71891e1 Add friendship support to query CPO. 2021-01-06 11:43:32 +11:00
Christopher Kohlhoff
359632d9ae Add friendship support to execution::execute CPO. 2021-01-06 11:42:48 +11:00
Simon Arlott
b239979692 Don't overwrite errno if socket() fails on macOS/FreeBSD. 2021-01-05 19:14:33 +11:00
Christopher Kohlhoff
fedb31ebb2 Clarify thread safety notes on sockets and descriptors. 2021-01-05 10:56:14 +11:00
Christopher Kohlhoff
da1cf294d9 Ensure pthread condition variable attributes are cleaned up. 2021-01-05 09:33:10 +11:00
Christopher Kohlhoff
ce9e7d999a Update copyright notices. 2021-01-02 09:49:44 +11:00
Christopher Kohlhoff
180bc40ea0 Fix experimental::as_single to work with handler hook deprecation. 2020-12-29 18:52:06 +11:00
Christopher Kohlhoff
439448326c Don't prefer() an allocator when dispatching through any_executor. 2020-12-29 18:36:27 +11:00
Christopher Kohlhoff
d2e5d9a5e4 Distinguish constructor overloads by number of arguments.
Single argument constructors with SFINAE constraints were causing
unnecessary template instantiations during overload resolution.
Adding dummy arguments prevents this from happening.
2020-12-29 18:36:27 +11:00
Christopher Kohlhoff
13281c560b Use separate SFINAE parameters to minimise template instantiations. 2020-12-29 18:36:27 +11:00
Christopher Kohlhoff
3189f29ad7 Short circuit property applicability checks after is_executor<>. 2020-12-29 18:36:06 +11:00
Christopher Kohlhoff
7377f941cc Add missing inline keyword in MSVC-specific workaround.
Fixes duplicate symbols when building with coroutine support.
2020-12-29 18:36:06 +11:00
Christopher Kohlhoff
937bf82d92 Add clang 3.8 builds. 2020-12-29 18:36:06 +11:00
Christopher Kohlhoff
b0f219ea42 Use github actions instead of travis for CI. 2020-12-29 14:36:06 +11:00
Christopher Kohlhoff
b84e6c16b2 asio version 1.18.1 released 2020-12-26 13:25:45 +11:00
Christopher Kohlhoff
80d487bbde Revision history. 2020-12-26 12:20:27 +11:00
Christopher Kohlhoff
6e75b35cdf Add missing SFINAE constraint to strand<>'s execute_member trait. 2020-12-03 09:24:32 +11:00
Christopher Kohlhoff
c0cadce4bb Remove link to defunct example. 2020-11-29 16:43:15 +11:00
Christopher Kohlhoff
610fd036c0 The -Wzero-as-null-pointer-constant warning was added in gcc 4.7. 2020-11-29 16:43:15 +11:00
Christopher Kohlhoff
c4ad07e86e Use eventfd() function with uClibc.
Even though uClibc reports that it is glibc 2.2, it provides
eventfd() as a function.
2020-11-29 16:43:06 +11:00
Christopher Kohlhoff
c99ad00f70 Update list of tested configurations. 2020-11-29 14:14:15 +11:00
Christopher Kohlhoff
4a109995da Add detection for non-experimental coroutines with MSVC 19.8 and later. 2020-11-29 14:04:02 +11:00
Christopher Kohlhoff
971458d91b Add documentation for more configuration macros. 2020-11-29 14:04:02 +11:00
Kira M. Backes
82887fe49f Improve build doc discoverability 2020-11-29 11:40:42 +11:00
Christopher Kohlhoff
4a2c74ee0b Add auto-generated documentation for compiler/platform feature macros. 2020-11-29 11:35:42 +11:00
Christopher Kohlhoff
5fb2ea03ac Add compatibility between polymorphic executors and the (deprecated) handler invocation hook. 2020-11-02 14:00:33 +11:00
Christopher Kohlhoff
a8e4084431 More support for detecting handlers that have no custom executor. 2020-11-02 14:00:33 +11:00
Christopher Kohlhoff
525c4203aa Add workarounds for the Intel C++ compiler. 2020-11-02 14:00:33 +11:00