2
0
mirror of https://github.com/boostorg/asio.git synced 2026-02-23 14:02:13 +00:00
Commit Graph

1334 Commits

Author SHA1 Message Date
Christopher Kohlhoff
22f231df2a Mark experimental::append() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
b8934f95c6 Mark experimental::as_tuple() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
8b72c3a6a5 Mark experimental::as_single() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
46b8e01a16 Mark get_associated_cancellation_slot() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
cc61699a52 Mark get_associated_executor() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
eb84be54b2 Mark get_associated_allocator() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
4102f2a86e Mark make_work_guard() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
26aa1fb96d Mark bind_cancellation_slot() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
9ab631ecf8 Mark bind_allocator() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
72117ebf63 Mark bind_executor() result as nodiscard. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
5d852c14bc Remove unused lambda capture. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
20a24bfdec Add missing include of error_code.hpp. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
9ea96c3fa9 Add file_base::sync_all_on_write flag.
Maps to:
  - O_SYNC on POSIX
  - FILE_FLAG_WRITE_THROUGH on Windows
2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
768498ab89 Document 'Completion Signature' for each asynchronous operation. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
c469b21031 Add support for adopting an existing SSL* into an ssl::stream<>. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
d30c94297d Fix any_io_executor with BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT and BOOST_ASIO_SEPARATE_COMPILATION.
Previous commits didn't take account of the possibility to use the both defines above.
Hence, any_io_executor.ipp would be compiled anyway, but `any_io_executor` is just a typedef.
2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
fc021c78b2 Fix bind_cancellation_slot compatibility with legacy completion tokens. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
784575a3d3 Fix bind_executor compatibility with legacy completion tokens. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
64faf0a6d2 Enable executor_work_guard<> even when ASIO_NO_TS_EXECUTORS is defined. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
0bfa387d2c Add missing implementation of basic_file::release(). 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
24cf583761 Fix small typo in documentation for ip::v6_only socket option. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
3329cbe225 Fix move operator= for stream_core. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
67a7e6b5c1 Fix missing reference to sender_endpoint in io_uring_socket_recvfrom_op. 2022-03-02 21:57:42 +11:00
Christopher Kohlhoff
5cc78465eb Fixed detail::has_allocator_type<T> not matching T::allocator_type 2022-03-02 21:57:41 +11:00
Christopher Kohlhoff
3cd04eee90 Add bind_allocator. 2022-03-02 21:57:41 +11:00
Christopher Kohlhoff
9eb306115d Include detail/concurrency_hint.hpp from io_context.hpp. 2022-03-02 21:24:32 +11:00
Christopher Kohlhoff
e1ba125248 Fix 'zero as null pointer constant' warning. 2022-03-02 21:24:15 +11:00
Christopher Kohlhoff
20ed628d43 Fix associator specialisations for append and prepend. 2022-03-02 21:24:01 +11:00
Christopher Kohlhoff
ff58013a23 Update copyright notices. 2022-03-02 21:23:52 +11:00
Christopher Kohlhoff
3966a24bae Version bump. 2021-12-02 10:02:56 +11:00
Christopher Kohlhoff
44eb830ee1 Fix awaitable move operator return value. 2021-12-02 08:55:47 +11:00
Christopher Kohlhoff
c95ce94d39 Make awaitable_operators.hpp self contained
It was missing `asio/co_spawn.hpp`
2021-12-02 08:54:38 +11:00
Christopher Kohlhoff
a493ddf11b Use default 'new' alignment, if available.
Fixes an access violation when using coroutines with MSVC and x64
targets, due to misaligned coroutine frames.
2021-12-01 00:07:45 +11:00
Christopher Kohlhoff
723a72bfc9 Eliminate shared_ptr from coro co_spawn() implementation. 2021-12-01 00:07:15 +11:00
Christopher Kohlhoff
0d807a8c47 Prevent async_resume from being called on coro temporaries. 2021-12-01 00:06:47 +11:00
Christopher Kohlhoff
a4af0eac25 Fix any_io_executor with BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT.
Commit 98f58ee has overlooked the case of `any_io_executor` being a
typedef to `executor` (when `BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT` is
defined) instead of a proper class, resulting in compilation errors.
2021-11-17 08:42:36 +11:00
Christopher Kohlhoff
842ca6e3e5 Work around header inclusion order problem when io_uring is enabled. 2021-11-17 08:42:18 +11:00
Christopher Kohlhoff
ab630c73d1 Fix shutdown cleanup issue in experimental::parallel_group. 2021-11-17 08:42:06 +11:00
Christopher Kohlhoff
e50201f38d Add missing move assignment operator to awaitable<>. 2021-11-17 08:39:36 +11:00
Christopher Kohlhoff
59dde8e8ea Fix bind_executor so that it doesn't require a token to provide legacy async_result support. 2021-11-17 08:38:11 +11:00
Christopher Kohlhoff
6f061b94c6 Include library and function in ssl error strings. 2021-11-17 08:37:44 +11:00
Christopher Kohlhoff
d5f201b5d4 Fully qualify use of asio::error namespace. 2021-11-17 08:37:27 +11:00
Christopher Kohlhoff
8da75d0109 Fix linked list corruption in channel cancel/close handling. 2021-11-17 08:36:03 +11:00
Christopher Kohlhoff
6921e4c65c Add missing destructors. 2021-11-17 08:35:52 +11:00
Christopher Kohlhoff
1f379847de Version bump. 2021-11-04 02:00:17 +11:00
Christopher Kohlhoff
495e6367af Add experimental support for channels.
This adds experimental::channel and experimental::concurrent_channel.
Channels may be used to send completions as messages. For example:

  // Create a channel with no buffer space.
  channel<void(error_code, size_t)> ch(ctx);

  // The call to try_send fails as there is no buffer
  // space and no waiting receive operations.
  bool ok = ch.try_send(asio::error::eof, 123);
  assert(!ok);

  // The async_send operation blocks until a receive
  // operation consumes the message.
  ch.async_send(asio::error::eof, 123,
      [](error_code ec)
      {
        // ...
      });

  // The async_receive consumes the message. Both the
  // async_send and async_receive operations complete
  // immediately.
  ch.async_receive(
      [](error_code ec, size_t n)
      {
        // ...
      });
2021-11-04 01:56:32 +11:00
Christopher Kohlhoff
f6d7f83065 Fix clang-11 compile error when io_uring is enabled. 2021-11-04 01:47:40 +11:00
Christopher Kohlhoff
5b72b72b72 Improvements to asio::experimental::coro.
* Added overload so member functions can provide an explicit executor.
* Added co_spawn for coro tasks.
* Added reference and overview documentation.
* Adopted awaitable cancellation model.
* Refactored implementation.
2021-11-04 01:41:25 +11:00
Christopher Kohlhoff
d6d69d87bb Disable aligned_alloc on clang when using MSVC runtime. 2021-11-04 01:35:42 +11:00
Christopher Kohlhoff
46c729aa28 Use faster implementation for network_v4::canonical(). 2021-11-04 01:35:30 +11:00