chriskohlhoff
Repos
27
Followers
946

Events

Fix gdb pretty-printer compatibility with libc++.

Created at 14 hours ago

Add gdb pretty printing for any_executor and io_context executors.

Created at 1 day ago
awaitable_backtrace support for programs compiled with gcc 10+

Currently the awaitable_backtrace command only supports programs compiled using clang.

Created at 3 days ago
abt error in clion bundled lldb

https://github.com/chriskohlhoff/asio-debugger-extensions/blob/5ece4d040b1654c8208c246b16fc0f36f9c2a3da/lldb/awaitable_backtrace.py#L26

error log

(lldb) abt
Traceback (most recent call last):
  File "/Users/xxx/.lldb/scripts/awaitable_backtrace.py", line 44, in awaitable_backtrace
    walk_awaitable_frames(target, awaitable_frame)
  File "/Users/xxx/.lldb/scripts/awaitable_backtrace.py", line 35, in walk_awaitable_frames
    print_coro(target, frame.GetChildMemberWithName("coro_"), depth)
  File "/Users/xxx/.lldb/scripts/awaitable_backtrace.py", line 26, in print_coro
    address = coro_data.deref.GetValueAsAddress()
AttributeError: 'SBValue' object has no attribute 'GetValueAsAddress'

fix it

fix it with: address = int(coro_data.deref.GetValue(), base=16)

documents

  • https://lldb.llvm.org/python_api/lldb.SBValue.html#lldb.SBValue
Created at 3 days ago
Fix error in clion bundled lldb
Created at 3 days ago

Fix error in clion bundled lldb

Add support for coroutines that use gcc and libstdc++.

Created at 3 days ago
create tag
chriskohlhoff create tag asio-1-27-0
Created at 1 week ago

Revision history.

Regenerate documentation.

Switch to 'pax' tar file format.

asio version 1.27.0 released

Created at 1 week ago
delete branch
chriskohlhoff delete branch citest-master
Created at 2 weeks ago

Fix doc generation for literal operators.

Fix deferred interoperability with multiple completion signatures.

Fix channels to support C++14 and (partially) C++11.

C++11 support is limited to channels with a single completion signature, or channels with a void() signature (plus the error signature added by the channel traits).

Remove spurious comment.

Add interoperability between channels and associated_immediate_executor.

Fix shadowed variable name.

Add more signal_set_base::flags_t constants

This commit only adds useful POSIX constants that don't conflict with asio's signal handling strategy (e.g. SA_SIGINFO would break asio interface, so it's avoided). Non-POSIX constants specific to certain operating systems (e.g. Linux's SA_UNSUPPORTED) are ignored.

Created at 2 weeks ago

Fix use of nullptr.

Ensure buffered messages can still be received when channel is closed.

Fix any_completion_handler assignment operator.

Prevent accidental copying of any_completion_handler.

Suppress spurious 'potential null dereference' warnings.

Fix spurious operator precedence warning with MSVC.

Use uint64_t for OpenSSL options.

Expose sigaction() flags via optional argument to signal_set::add.

When registering a signal, it is now possible to pass flags that specify the behaviour associated with the signal. These flags are specified as an enum type in a new class, signal_set_base, and are passed to the underlying sigaction() call. For example:

asio::signal_set sigs(my_io_context); sigs.add(SIGINT, asio::signal_set::flags::restart);

Specifying flags other than flags::dont_care will fail unless sigaction() is supported by the target operating system. Since signal registration is global, conflicting flags (multiple registrations that pass differing flags other than flags::dont_care) will also result in an error.

Reset timer_thread_ in win_iocp_io_context::shutdown().

Resets timer_thread in shutdown for the case when shutdown is called more than once.

Add any_completion_handler to the documentation.

Fix execution context overloads of get_associated_executor and get_associated_immediate_executor.

Regenerate documentation.

Fix doc generation for literal operators.

Fix deferred interoperability with multiple completion signatures.

Fix channels to support C++14 and (partially) C++11.

C++11 support is limited to channels with a single completion signature, or channels with a void() signature (plus the error signature added by the channel traits).

Remove spurious comment.

Add interoperability between channels and associated_immediate_executor.

Fix shadowed variable name.

Add more signal_set_base::flags_t constants

This commit only adds useful POSIX constants that don't conflict with asio's signal handling strategy (e.g. SA_SIGINFO would break asio interface, so it's avoided). Non-POSIX constants specific to certain operating systems (e.g. Linux's SA_UNSUPPORTED) are ignored.

Regenerate documentation.

Created at 2 weeks ago

Fix deferred interoperability with multiple completion signatures.

Fix channels to support C++14 and (partially) C++11.

C++11 support is limited to channels with a single completion signature, or channels with a void() signature (plus the error signature added by the channel traits).

Remove spurious comment.

Add interoperability between channels and associated_immediate_executor.

Fix shadowed variable name.

Add more signal_set_base::flags_t constants

This commit only adds useful POSIX constants that don't conflict with asio's signal handling strategy (e.g. SA_SIGINFO would break asio interface, so it's avoided). Non-POSIX constants specific to certain operating systems (e.g. Linux's SA_UNSUPPORTED) are ignored.

Regenerate documentation.

Revision history.

Version bump.

Created at 2 weeks ago

Fix channels to support C++14 and (partially) C++11.

C++11 support is limited to channels with a single completion signature, or channels with a void() signature (plus the error signature added by the channel traits).

Remove spurious comment.

Add interoperability between channels and associated_immediate_executor.

Fix shadowed variable name.

Add more signal_set_base::flags_t constants

This commit only adds useful POSIX constants that don't conflict with asio's signal handling strategy (e.g. SA_SIGINFO would break asio interface, so it's avoided). Non-POSIX constants specific to certain operating systems (e.g. Linux's SA_UNSUPPORTED) are ignored.

Created at 2 weeks ago
create branch
chriskohlhoff create branch citest-master
Created at 2 weeks ago

Fix doc generation for literal operators.

Created at 2 weeks ago
delete branch
chriskohlhoff delete branch citest-master
Created at 2 weeks ago

Fix use of nullptr.

Ensure buffered messages can still be received when channel is closed.

Fix any_completion_handler assignment operator.

Prevent accidental copying of any_completion_handler.

Suppress spurious 'potential null dereference' warnings.

Fix spurious operator precedence warning with MSVC.

Use uint64_t for OpenSSL options.

Expose sigaction() flags via optional argument to signal_set::add.

When registering a signal, it is now possible to pass flags that specify the behaviour associated with the signal. These flags are specified as an enum type in a new class, signal_set_base, and are passed to the underlying sigaction() call. For example:

asio::signal_set sigs(my_io_context); sigs.add(SIGINT, asio::signal_set::flags::restart);

Specifying flags other than flags::dont_care will fail unless sigaction() is supported by the target operating system. Since signal registration is global, conflicting flags (multiple registrations that pass differing flags other than flags::dont_care) will also result in an error.

Reset timer_thread_ in win_iocp_io_context::shutdown().

Resets timer_thread in shutdown for the case when shutdown is called more than once.

Add missing file model_dox.txt.

Add any_completion_handler to the documentation.

Fix execution context overloads of get_associated_executor and get_associated_immediate_executor.

Created at 2 weeks ago

Fix use of nullptr.

Ensure buffered messages can still be received when channel is closed.

Fix any_completion_handler assignment operator.

Prevent accidental copying of any_completion_handler.

Suppress spurious 'potential null dereference' warnings.

Fix spurious operator precedence warning with MSVC.

Use uint64_t for OpenSSL options.

Expose sigaction() flags via optional argument to signal_set::add.

When registering a signal, it is now possible to pass flags that specify the behaviour associated with the signal. These flags are specified as an enum type in a new class, signal_set_base, and are passed to the underlying sigaction() call. For example:

asio::signal_set sigs(my_io_context); sigs.add(SIGINT, asio::signal_set::flags::restart);

Specifying flags other than flags::dont_care will fail unless sigaction() is supported by the target operating system. Since signal registration is global, conflicting flags (multiple registrations that pass differing flags other than flags::dont_care) will also result in an error.

Reset timer_thread_ in win_iocp_io_context::shutdown().

Resets timer_thread in shutdown for the case when shutdown is called more than once.

Add any_completion_handler to the documentation.

Fix execution context overloads of get_associated_executor and get_associated_immediate_executor.

Regenerate documentation.

Created at 2 weeks ago

Expose sigaction() flags via optional argument to signal_set::add.

When registering a signal, it is now possible to pass flags that specify the behaviour associated with the signal. These flags are specified as an enum type in a new class, signal_set_base, and are passed to the underlying sigaction() call. For example:

asio::signal_set sigs(my_io_context); sigs.add(SIGINT, asio::signal_set::flags::restart);

Specifying flags other than flags::dont_care will fail unless sigaction() is supported by the target operating system. Since signal registration is global, conflicting flags (multiple registrations that pass differing flags other than flags::dont_care) will also result in an error.

Reset timer_thread_ in win_iocp_io_context::shutdown().

Resets timer_thread in shutdown for the case when shutdown is called more than once.

Add missing file model_dox.txt.

Add any_completion_handler to the documentation.

Fix execution context overloads of get_associated_executor and get_associated_immediate_executor.

Created at 2 weeks ago

Use uint64_t for OpenSSL options.

Add optional flags argument to signal_set::add.

When registered for a signal, it is now possible to pass flags that specify the behaviour associated with the signal. These flags are specified as an enum type in a new class, signal_set_base. For example:

asio::signal_set sigs(my_io_context); sigs.add(SIGINT, asio::signal_set::flags::restart);

Specifying flags other than flags::dont_care will fail unless sigaction() is supported by the target operating system. Since signal registration is global, conflicting flags (multiple registrations that pass differing flags other than flags::dont_care) will also result in an error.

Reset timer_thread_ in win_iocp_io_context::shutdown().

Resets timer_thread in shutdown for the case when shutdown is called more than once.

Created at 2 weeks ago

Fix spurious operator precedence warning with MSVC.

Created at 2 weeks ago

Fix any_completion_handler assignment operator.

Prevent accidental copying of any_completion_handler.

Suppress spurious 'potential null dereference' warnings.

Created at 2 weeks ago
create branch
chriskohlhoff create branch citest-master
Created at 2 weeks ago

Update copyright notices.

Move dispatch, post and defer initiation objects to detail headers.

Add associated_immediate_executor associator.

Add bind_immediate_executor function and immediate_executor_binder adapter.

Change allocator_binder to support detection of unspecialised associators.

Change executor_binder to support detection of unspecialised associators.

Change cancellation_slot_binder to support detection of unspecialised associators.

Support immediate completion with reactor-based sockets and descriptors.

Fix ambiguity of associated_cancellation_slot<reference_wrapper>::get().

Add user-defined literals for asio buffer types.

The _buf literal suffix, defined in namespace asio::buffer_literals, may be used to create const_buffer objects from string, binary integer, and hexadecimal integer literals. These buffer literals may be arbitrarily long. For example:

using namespace asio::buffer_literals;

asio::const_buffer b1 = "hello"_buf; asio::const_buffer b2 = 0xdeadbeef_buf; asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf; asio::const_buffer b4 = 0b1010101011001100_buf;

The memory associated with a buffer literal is valid for the lifetime of the program. This means that the buffer can be safely used with asynchronous operations:

async_write(my_socket, "hello"_buf, my_handler);

Add protocol for AF_UNIX+SOCK_SEQPACKET.

Fix awaitable exception pointer check typos.

Fix experimental::channel try_send failure after cancel.

Fix thread_pool::join() deadlock when pool has no internal threads.

Fix pipe release() when using io_uring.

Fix initialization of sqe->user_data for reuse by io_uring_service.

The value of user_data in a submission queue entry is only initialized with with the ring itself, remaining unchanged after use and even through calls to io_uring_get_sqe(3). Many submission paths apply io_uring_sqe_set_data(3) but the remainder are submitted with stale values that can apply completion operations on the wrong queues with the wrong results, causing obscure bugs.

Fix execution context overload of get_associated_executor.

Explicitly shutdown in io_context and thread_pool destructor.

Fixes a use-after destroy when shutdown() is called from the base class execution_context destructor, and this in turns triggers the destruction of outstanding work objects.

Merge asio from 'develop'.

Created at 3 weeks ago
delete branch
chriskohlhoff delete branch citest-master
Created at 3 weeks ago
create tag
chriskohlhoff create tag asio-1-26-0
Created at 3 weeks ago

Revision history.

asio version 1.26.0 released

Update copyright notices.

Move dispatch, post and defer initiation objects to detail headers.

Add associated_immediate_executor associator.

Add bind_immediate_executor function and immediate_executor_binder adapter.

Change allocator_binder to support detection of unspecialised associators.

Change executor_binder to support detection of unspecialised associators.

Change cancellation_slot_binder to support detection of unspecialised associators.

Support immediate completion with reactor-based sockets and descriptors.

Fix ambiguity of associated_cancellation_slot<reference_wrapper>::get().

Add user-defined literals for asio buffer types.

The _buf literal suffix, defined in namespace asio::buffer_literals, may be used to create const_buffer objects from string, binary integer, and hexadecimal integer literals. These buffer literals may be arbitrarily long. For example:

using namespace asio::buffer_literals;

asio::const_buffer b1 = "hello"_buf; asio::const_buffer b2 = 0xdeadbeef_buf; asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf; asio::const_buffer b4 = 0b1010101011001100_buf;

The memory associated with a buffer literal is valid for the lifetime of the program. This means that the buffer can be safely used with asynchronous operations:

async_write(my_socket, "hello"_buf, my_handler);

Add protocol for AF_UNIX+SOCK_SEQPACKET.

Fix awaitable exception pointer check typos.

Fix experimental::channel try_send failure after cancel.

Fix thread_pool::join() deadlock when pool has no internal threads.

Fix pipe release() when using io_uring.

Fix initialization of sqe->user_data for reuse by io_uring_service.

The value of user_data in a submission queue entry is only initialized with with the ring itself, remaining unchanged after use and even through calls to io_uring_get_sqe(3). Many submission paths apply io_uring_sqe_set_data(3) but the remainder are submitted with stale values that can apply completion operations on the wrong queues with the wrong results, causing obscure bugs.

Fix execution context overload of get_associated_executor.

Explicitly shutdown in io_context and thread_pool destructor.

Fixes a use-after destroy when shutdown() is called from the base class execution_context destructor, and this in turns triggers the destruction of outstanding work objects.

Created at 3 weeks ago

Update copyright notices.

Move dispatch, post and defer initiation objects to detail headers.

Add associated_immediate_executor associator.

Add bind_immediate_executor function and immediate_executor_binder adapter.

Change allocator_binder to support detection of unspecialised associators.

Change executor_binder to support detection of unspecialised associators.

Change cancellation_slot_binder to support detection of unspecialised associators.

Support immediate completion with reactor-based sockets and descriptors.

Fix ambiguity of associated_cancellation_slot<reference_wrapper>::get().

Add user-defined literals for asio buffer types.

The _buf literal suffix, defined in namespace asio::buffer_literals, may be used to create const_buffer objects from string, binary integer, and hexadecimal integer literals. These buffer literals may be arbitrarily long. For example:

using namespace asio::buffer_literals;

asio::const_buffer b1 = "hello"_buf; asio::const_buffer b2 = 0xdeadbeef_buf; asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf; asio::const_buffer b4 = 0b1010101011001100_buf;

The memory associated with a buffer literal is valid for the lifetime of the program. This means that the buffer can be safely used with asynchronous operations:

async_write(my_socket, "hello"_buf, my_handler);

Add protocol for AF_UNIX+SOCK_SEQPACKET.

Fix awaitable exception pointer check typos.

Fix experimental::channel try_send failure after cancel.

Fix thread_pool::join() deadlock when pool has no internal threads.

Fix pipe release() when using io_uring.

Fix initialization of sqe->user_data for reuse by io_uring_service.

The value of user_data in a submission queue entry is only initialized with with the ring itself, remaining unchanged after use and even through calls to io_uring_get_sqe(3). Many submission paths apply io_uring_sqe_set_data(3) but the remainder are submitted with stale values that can apply completion operations on the wrong queues with the wrong results, causing obscure bugs.

Fix execution context overload of get_associated_executor.

Explicitly shutdown in io_context and thread_pool destructor.

Fixes a use-after destroy when shutdown() is called from the base class execution_context destructor, and this in turns triggers the destruction of outstanding work objects.

Created at 3 weeks ago

Add protocol for AF_UNIX+SOCK_SEQPACKET.

Fix awaitable exception pointer check typos.

Fix experimental::channel try_send failure after cancel.

Fix thread_pool::join() deadlock when pool has no internal threads.

Fix pipe release() when using io_uring.

Fix initialization of sqe->user_data for reuse by io_uring_service.

The value of user_data in a submission queue entry is only initialized with with the ring itself, remaining unchanged after use and even through calls to io_uring_get_sqe(3). Many submission paths apply io_uring_sqe_set_data(3) but the remainder are submitted with stale values that can apply completion operations on the wrong queues with the wrong results, causing obscure bugs.

Fix execution context overload of get_associated_executor.

Explicitly shutdown in io_context and thread_pool destructor.

Fixes a use-after destroy when shutdown() is called from the base class execution_context destructor, and this in turns triggers the destruction of outstanding work objects.

Created at 3 weeks ago

Add associated_immediate_executor associator.

Add bind_immediate_executor function and immediate_executor_binder adapter.

Change allocator_binder to support detection of unspecialised associators.

Change executor_binder to support detection of unspecialised associators.

Change cancellation_slot_binder to support detection of unspecialised associators.

Support immediate completion with reactor-based sockets and descriptors.

Fix ambiguity of associated_cancellation_slot<reference_wrapper>::get().

Add user-defined literals for asio buffer types.

The _buf literal suffix, defined in namespace asio::buffer_literals, may be used to create const_buffer objects from string, binary integer, and hexadecimal integer literals. These buffer literals may be arbitrarily long. For example:

using namespace asio::buffer_literals;

asio::const_buffer b1 = "hello"_buf; asio::const_buffer b2 = 0xdeadbeef_buf; asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf; asio::const_buffer b4 = 0b1010101011001100_buf;

The memory associated with a buffer literal is valid for the lifetime of the program. This means that the buffer can be safely used with asynchronous operations:

async_write(my_socket, "hello"_buf, my_handler);

Created at 3 weeks ago