Commit Graph

2828 Commits

Author SHA1 Message Date
Christopher Kohlhoff
77bcfe775a Add constraints to use_awaitable_t::executor_with_default's constructor to prevent template instantiation recursion. 2021-05-17 22:18:05 +10:00
Christopher Kohlhoff
c12bdd3d23 Fix any_io_executor equality operators. 2021-05-17 22:17:59 +10:00
Christopher Kohlhoff
a4d820dd69 asio version 1.18.2 released 2021-05-17 22:11:51 +10:00
Christopher Kohlhoff
65fb03dacb Revision history. 2021-05-17 20:02:37 +10:00
Christopher Kohlhoff
57577c6db4 Regenerate documentation. 2021-04-06 13:05:37 +10:00
Christopher Kohlhoff
ef0c424b00 Prevent blocking.always from being used with strand<>.
Previously, calling `require(E, blocking.always)` on a strand E compiled
but produced incorrect behaviour. Now, `require(E, blocking.always)`
will no longer compile. Furthermore, when used with an always-blocking
inner executor, the strand will report its blocking property as
blocking.possibly.
2021-04-06 12:58:34 +10:00
Christopher Kohlhoff
69f98d2cde Tell doxygen about the ASIO_NOEXCEPT_IF macro. 2021-04-06 11:43:43 +10:00
Christopher Kohlhoff
70a5952d28 Fix detection of defaulted template arguments on functions with MSVC. 2021-03-18 12:30:17 +11:00
Christopher Kohlhoff
7fe18ba1b3 Compatibility with boost regex v5. 2021-03-15 10:36:34 +11:00
Christopher Kohlhoff
93f87fbdbf Exclude any_io_executor traits from documentation. 2021-03-04 15:39:48 +11:00
Christopher Kohlhoff
37789151d0 Use escaped names in index entries. 2021-03-04 15:39:48 +11:00
Christopher Kohlhoff
61c273ae09 Regenerate documentation. 2021-03-04 09:47:16 +11:00
Christopher Kohlhoff
7e4772f73c Use separate SFINAE constraints for read_until and async_read_until. 2021-03-04 09:47:11 +11:00
Christopher Kohlhoff
80c71f02b5 Use separate SFINAE constraints for write and async_write. 2021-03-04 09:47:11 +11:00
Christopher Kohlhoff
2cdf01144f Use separate SFINAE constraints for read and async_read. 2021-03-04 09:47:11 +11:00
Christopher Kohlhoff
bb7c4d4d54 Add index entries for classes. 2021-03-04 09:08:26 +11:00
Christopher Kohlhoff
6c177789f8 Use constraint<> rather than enable_if<> in public SFINAE-constrained functions. 2021-03-03 23:15:30 +11:00
Christopher Kohlhoff
b5a8065ecc The executor must be copied when an I/O object is move-assigned.
The moved-from I/O object needs to be left in the same state as if
constructed with a valid executor but without a resource.
2021-03-03 18:50:31 +11:00
Christopher Kohlhoff
845d8bfb3c Ensure call_stacks are accessed only from implementation files. 2021-03-03 08:26:45 +11:00
Christopher Kohlhoff
eb61fc9b93 Test on FreeBSD 12.2. 2021-02-24 22:54:52 +11:00
Christopher Kohlhoff
7447c4da17 Change any_io_executor to a 'strong typedef'-style class. 2021-02-24 11:53:54 +11:00
Christopher Kohlhoff
885d6b7474 Fix boostification of std::hash specialisations. 2021-02-24 11:53:49 +11:00
Christopher Kohlhoff
0355fc5980 Fix long line. 2021-01-16 10:14:17 +11:00
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