Skip to content

Commit

Permalink
f
Browse files Browse the repository at this point in the history
  • Loading branch information
poor-circle committed Jan 23, 2025
1 parent 3983b43 commit cdff1db
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions include/ylt/coro_io/coro_io.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,11 @@ class callback_awaitor_base {
set_value(std::forward<Args>(args)...);
resume();
}
template <typename... Args>
void set_value(std::error_code ec, Args &&...args) const {
template <typename Args>
void set_value(std::error_code ec, Args &&arg) const {
if constexpr (!std::is_same_v<Arg, std::error_code>) {
obj->arg_ = {std::move(ec), std::forward<Args>(args)...};
std::get<0>(obj->arg_) = std::move(ec);
std::get<1>(obj->arg_) = std::move(arg);
}
else {
obj->arg_ = std::move(ec);
Expand Down Expand Up @@ -240,13 +241,13 @@ inline async_simple::coro::Lazy<ret_type> async_io(IO_func io_func,
[&obj, weak_lock = std::weak_ptr{lock}](
async_simple::SignalType signalType,
async_simple::Signal *signal) {
if (auto ptr = weak_lock.lock(); ptr) {
bool expected = false;
if (!ptr->compare_exchange_strong(
expected, true, std::memory_order_release)) {
detail::cancel(obj);
}
if (auto ptr = weak_lock.lock(); ptr) {
bool expected = false;
if (!ptr->compare_exchange_strong(
expected, true, std::memory_order_release)) {
detail::cancel(obj);
}
}
});
if (hasCanceled) {
asio::dispatch(executor, [handler]() {
Expand Down

0 comments on commit cdff1db

Please sign in to comment.