From 2a3552863e3e6968cdf1c5b684a75d215782ad83 Mon Sep 17 00:00:00 2001 From: Kevin Li Date: Mon, 14 Oct 2024 20:23:17 +0800 Subject: [PATCH] upgrade pipeline (#61) * upgrade pipeline * add doc for babylon::DepositBox * add doc for coroutine --- .bazelrc | 6 +- .github/workflows/ci.yml | 26 +++-- README.md | 1 + copts.bzl | 2 +- docs/concurrent/deposit_box.md | 57 +++++++++++ docs/concurrent/images/deposit_box.png | Bin 0 -> 38546 bytes docs/concurrent/index.md | 1 + docs/coroutine/README.md | 21 ++++ docs/coroutine/cancellable.md | 42 ++++++++ docs/coroutine/futex.md | 48 +++++++++ docs/coroutine/future_awaitable.md | 39 ++++++++ docs/coroutine/images/awaitable.png | Bin 0 -> 58651 bytes docs/coroutine/images/cancellable.png | Bin 0 -> 39160 bytes docs/coroutine/images/futex.png | Bin 0 -> 82096 bytes docs/coroutine/images/promise.png | Bin 0 -> 62634 bytes docs/coroutine/task.md | 117 ++++++++++++++++++++++ src/babylon/concurrent/deposit_box.h | 4 +- src/babylon/coroutine/futex.h | 7 ++ test/logging/test_async_file_appender.cpp | 2 +- 19 files changed, 360 insertions(+), 13 deletions(-) create mode 100644 docs/concurrent/deposit_box.md create mode 100644 docs/concurrent/images/deposit_box.png create mode 100644 docs/coroutine/README.md create mode 100644 docs/coroutine/cancellable.md create mode 100644 docs/coroutine/futex.md create mode 100644 docs/coroutine/future_awaitable.md create mode 100644 docs/coroutine/images/awaitable.png create mode 100644 docs/coroutine/images/cancellable.png create mode 100644 docs/coroutine/images/futex.png create mode 100644 docs/coroutine/images/promise.png create mode 100644 docs/coroutine/task.md diff --git a/.bazelrc b/.bazelrc index 49b5f386..f8cf776d 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,8 +1,10 @@ common --registry=https://bcr.bazel.build common --registry=file://%workspace%/registry -build --cxxopt=-std=c++20 +build --cxxopt=-faligned-new +# Include attribute is not properly set in abseil-cpp. +# Enable external_include_paths globally make them include with -isystem. test --//:werror --features external_include_paths # SwissMemoryResource's patch violate odr rule. But still keep same struct with same defination and same size @@ -11,7 +13,7 @@ test --test_env=ASAN_OPTIONS=detect_odr_violation=1 # There are bugs about -fsanitize=address and -Wuninitialized # as mentioned in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105616 -test:asan --features=asan --copt=-Wno-maybe-uninitialized --copt=-Wno-unknown-warning-option +test:asan --features=asan test:arenastring --//test/proto:arenastring test:mutable-donated-string --config=arenastring --copt=-DGOOGLE_PROTOBUF_MUTABLE_DONATED_STRING=1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4d27aba..bc14849c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,18 +12,14 @@ jobs: fail-fast: false matrix: compiler: [{name: gcc, flag: --action_env=CC=gcc-14}, {name: clang, flag: --action_env=CC=clang-18}] - std: [{name: c++20}, {name: c++14, flag: --cxxopt=-std=c++14 --cxxopt=-faligned-new}, {name: c++14-coroutine, flag: --cxxopt=-faligned-new --cxxopt=-fconcepts --cxxopt=-fcoroutines}] + std: [{name: c++20, flag: --cxxopt=-std=c++20}, {name: c++14, flag: --cxxopt=-std=c++14}] stdlib: [{name: stdlibc++}, {name: libc++, flag: --cxxopt=-stdlib=libc++ --linkopt=-stdlib=libc++}] feature: [{name: asan, flag: --config=asan}, {name: tsan, flag: --features=tsan}] exclude: - compiler: {name: gcc} stdlib: {name: libc++} - - compiler: {name: clang} - std: {name: c++14-coroutine} - std: {name: c++14} feature: {name: tsan} - - std: {name: c++14-coroutine} - feature: {name: tsan} runs-on: ubuntu-latest name: basic-${{matrix.compiler.name}}-${{matrix.std.name}}-${{matrix.stdlib.name}}-${{matrix.feature.name}} steps: @@ -73,6 +69,22 @@ jobs: path: bazel-disk key: bazel-disk-arenastring-${{matrix.compiler.name}}-${{matrix.stdlib.name}}-${{matrix.mutable.name}}-${{github.sha}} + cpp14-coroutine: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/cache/restore@v4 + with: + path: bazel-disk + key: bazel-disk-c++14-coroutine-${{github.sha}} + restore-keys: bazel-disk-c++14-coroutine- + - run: bazel test --disk_cache=bazel-disk --verbose_failures --test_output=errors --action_env=CC=gcc-12 --cxxopt=-std=c++14 --cxxopt=-fcoroutines --cxxopt=-fconcepts test/... + - uses: actions/cache/save@v4 + if: always() + with: + path: bazel-disk + key: bazel-disk-c++14-coroutine-${{github.sha}} + aarch64: runs-on: ubuntu-latest steps: @@ -83,10 +95,10 @@ jobs: key: bazel-disk-aarch64-${{github.sha}} restore-keys: bazel-disk-aarch64- - run: sudo apt update - - run: sudo apt install g++-12-aarch64-linux-gnu + - run: sudo apt install g++-14-aarch64-linux-gnu - run: sudo apt install qemu-user - run: sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ - - run: bazel test --disk_cache=bazel-disk --verbose_failures --test_output=errors --platforms='@cross_config_toolchain//:cross' --action_env=CROSS_CC=/usr/bin/aarch64-linux-gnu-gcc-12 --features=-default_link_flags --test_env=LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib -- test/... -test/logging:test_log_statically + - run: bazel test --disk_cache=bazel-disk --verbose_failures --test_output=errors --platforms='@cross_config_toolchain//:cross' --action_env=CROSS_CC=/usr/bin/aarch64-linux-gnu-gcc-14 --features=-default_link_flags --test_env=LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib -- test/... -test/logging:test_log_statically - uses: actions/cache/save@v4 if: always() with: diff --git a/README.md b/README.md index 9337e8c8..07c4ccce 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Babylon也支持使用[CMake](https://cmake.org)进行构建,并支持通过[f - [:anyflow](docs/anyflow/index.md) - [:application_context](docs/application_context.md) - [:concurrent](docs/concurrent/index.md) +- [:coroutine](docs/coroutine) - [:executor](docs/executor.md) - [:future](docs/future.md) - [:logging](docs/logging/index.md) diff --git a/copts.bzl b/copts.bzl index 13b28328..1eddc559 100644 --- a/copts.bzl +++ b/copts.bzl @@ -1,5 +1,5 @@ BABYLON_GCC_COPTS = ['-Wall', '-Wextra'] -BABYLON_CLANG_COPTS = ['-faligned-new', '-Weverything', '-Wno-unknown-warning-option', +BABYLON_CLANG_COPTS = ['-Weverything', '-Wno-unknown-warning-option', # 不保持老版本c++语法兼容 '-Wno-c++98-compat-pedantic', # Boost Preprocessor中大量使用 diff --git a/docs/concurrent/deposit_box.md b/docs/concurrent/deposit_box.md new file mode 100644 index 00000000..fa565cbc --- /dev/null +++ b/docs/concurrent/deposit_box.md @@ -0,0 +1,57 @@ +# deposit_box + +## 原理 + +有时我们需要一种多个调用者动态竞争完成相同一段逻辑的设计模式,典型类似实现timeout动作(一个有效,一个无效)或者backup request动作(两个有效,先到先得);从原理上,这种模式需要的机制和[std::call_once](https://en.cppreference.com/w/cpp/thread/call_once)非常类似,但是会有以下几个不同点: +- 后来者并不需要等待执行者完成,单纯放弃自己的运行即可; +- 由于后来者原理上不需要任何执行动作和结果,执行者可以更早释放资源进行复用,相应地后来者需要确保不会修改可能已经被复用的资源; + +![](images/deposit_box.png) + +采用[IdAllocator](id_allocator.md)和[ConcurrentVector](vector.md)组织实际的数据,实现聚集存储和基于序号的快速访问;每一个轮次中的take动作通过对版本号的CAS自增实现归属权竞争,后来者除CAS动作外不碰触数据部分;版本号自身同样存储在[ConcurrentVector](vector.md)的槽位内部,确保后来者的CAS动作本身合法,而版本号本身的单调递增特性排除了后来者的ABA问题; + +## 用法示例 + +### DepositBox + +```c++ +#include + +using ::babylon::DepositBox; + +// 仅支持通过全局单例使用 +auto& box = DepositBox::instance(); + +// 分配一个槽位,并在其中通过Item(...)构造元素,返回id用于未来竞争取回这个元素 +// 并发的多个emplace动作是线程安全的 +auto id = box.emplace(...); + +{ + // 取回操作可以对同一个id竞争执行,是线程安全的 + auto accessor = box.take(id); + // 通过accessor是否非空可以判定是否是第一个获取到所有权的访问者 + // 非空accessor可以进一步用于访问元素 + if (accessor) { + accessor->item_member_function(...); + some_function_use_item(*accessor); + } +} // accessor析构时释放槽位,元素指针不再可用 + +///////////////////////////// 高级用法 ///////////////////////////////////// + +// 非RAII模式,直接返回元素指针Item* +auto item = box.take_released(id); +if (item) { + item->item_member_function(...); + some_function_use_item(*item); +} +// 不再需要访问Item*时需要主动释放所有权 +box.finish_released(id); + +// 不校验和操作版本号部分,直接取得id对应槽位内的元素指针,因此不能和take动作安全并发 +// 在一些不能通过构造函数就完成元素准备的场景,可以在分配槽位后进一步增量操作元素 +// 但是需要使用者确保此时id还未交给竞争访问者执行take动作 +auto item = box.unsafe_get(id); +item->item_member_function(...); +some_function_use_item(*item); +``` diff --git a/docs/concurrent/images/deposit_box.png b/docs/concurrent/images/deposit_box.png new file mode 100644 index 0000000000000000000000000000000000000000..45747297798c273918183f66531343f46ad05c6c GIT binary patch literal 38546 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 literal 0 HcmV?d00001 diff --git a/docs/concurrent/index.md b/docs/concurrent/index.md index a0d6121f..530a9492 100644 --- a/docs/concurrent/index.md +++ b/docs/concurrent/index.md @@ -4,6 +4,7 @@ - [bounded_queue](bounded_queue.md) - [counter](counter.md) +- [deposit_box](deposit_box.md) - [epoch](epoch.md) - [execution_queue](execution_queue.md) - [garbage_collector](garbage_collector.md) diff --git a/docs/coroutine/README.md b/docs/coroutine/README.md new file mode 100644 index 00000000..3d9ba55b --- /dev/null +++ b/docs/coroutine/README.md @@ -0,0 +1,21 @@ +# coroutine + +## 原理 + +基于[C++20](https://en.cppreference.com/w/cpp/20)的[coroutine](https://en.cppreference.com/w/cpp/language/coroutines)标准,实现的一套协程机制;按照标准,一个协程函数除了内部包含`co_xxx`关键字语句之外,返回值也有一系列特殊要求;要求整体可以分为两个大类,一类用来支持单一返回值协程,返回值一般称为task;另一类用来支持多次返回值协程,一般被称为generator; + +![](images/promise.png) +![](images/awaitable.png) + +[coroutine](https://en.cppreference.com/w/cpp/language/coroutines)标准并非直接定义了协程机制,而是更为抽象地统一了协程机制的API部分,并将细粒度的SPI部分分离到用户不可见的部分;最终通过用户 -> API -> 编译器 -> SPI -> 协程机制来进行运转;整体工作模式为 +- 最终用户通过统一关键字操作符表达语义,例如`co_await`和`co_return` +- 最终用户通过协程函数返回类型,表达实际对接的协程机制 +- 编译器按照操作符语义,按标准分阶段完成协程的中断和恢复 +- 编译器在中断和恢复前后的若干标准点位,调用实际协程提供框架的相应功能 + +## 子模块文档 + +- [task](task.md) +- [future_awaitable](future_awaitable.md) +- [cancellable](cancellable.md) +- [futex](futex.md) diff --git a/docs/coroutine/cancellable.md b/docs/coroutine/cancellable.md new file mode 100644 index 00000000..924b43af --- /dev/null +++ b/docs/coroutine/cancellable.md @@ -0,0 +1,42 @@ +# cancellable + +## 原理 + +标准[coroutine](https://en.cppreference.com/w/cpp/language/coroutines)机制中的`co_await`相当于[std::future::get](https://en.cppreference.com/w/cpp/thread/future/get)方法,即等待目标awaitable完成,并在之后才能恢复执行;但有时需要让等待具备提前结束的能力,最为典型的场景是timeout这类场景; + +![](images/cancellable.png) + +实现上Cancellable包装一个常规的awaitable,并通过插入一个proxy awaitable实现取消支持;一方面proxy awaitable传递`co_await`到包装的awaitable,并最终传导恢复执行动作到发起`co_await`的原始协程;另一方面,proxy awaitable并不将待恢复的协程句柄存在本地,而是存放到[DepositBox](../concurrent/deposit_box.md)中,并同时传输给注册的timer等执行取消动作的触发源;当包装的awaitable发起恢复,或者取消触发源发起取消时,会竞争[DepositBox](../concurrent/deposit_box.md)中存放的协程句柄,并由胜出方执行恢复动作; + +## 用法示例 + +```c++ +#include "babylon/coroutine/task.h" +#include "babylon/coroutine/cancellable.h" + +using ::babylon::coroutine::Task; +using ::babylon::coroutine::Cancellable; + +using Cancellation = typename Cancellable::Cancellation; + +Task<...> some_coroutine(...) { + ... + // 包装原始awaitable称为Cancellable + auto optional_value = co_await Cancellable(::std::move(a)).on_suspend( + // 通过回调函数在协程挂起后接收相应的取消句柄 + [&](Cancellation cancel) { + // 典型操作是把cancel句柄注册到某种timer机制,并在指定时间后调用cancel()发起取消 + // 从回调被执行开始,cancel就可用了,甚至在回调内部也可以直接发起cancel(),虽然一般这并没有什么意义 + on_timer(cancel, 100ms); + } + ); + // 如果a先完成,则返回非空值可供操作 + if (optional_value) { + optional_value->item_member_function(...); + some_function_use_item(*optional_value); + } else { + // 收到空值表示取消动作先一步发起 + } + ... +} +``` diff --git a/docs/coroutine/futex.md b/docs/coroutine/futex.md new file mode 100644 index 00000000..de5f50a7 --- /dev/null +++ b/docs/coroutine/futex.md @@ -0,0 +1,48 @@ +# futex + +## 原理 + +标准[coroutine](https://en.cppreference.com/w/cpp/language/coroutines)机制中的`co_await`基本对标了[std::future](https://en.cppreference.com/w/cpp/thread/future)并行同步模式;但更多复杂的同步模式例如[std::mutex](https://en.cppreference.com/w/cpp/thread/mutex)或者[std::condition_variable](https://en.cppreference.com/w/cpp/thread/condition_variable)的支持可以统一通过类似[futex(2)](https://man7.org/linux/man-pages/man2/futex.2.html)的机制统一支持; + +![](images/futex.png) + +实现上通过每个futex实例伴随一个`std::mutex`来实现值检测和等待回调链串联原子性;通过[DepositBox](../concurrent/deposit_box.md)实现取消和唤醒的唯一性; + +## 用法示例 + +```c++ +#include "babylon/coroutine/task.h" +#include "babylon/coroutine/futex.h" + +using ::babylon::coroutine::Task; +using ::babylon::coroutine::Futex; + +using Cancellation = Futex::Cancellation; + +// Futex构造时内部值为0 +Futex futex; + +// 读写futex内部值 +futex.value() = ... +// 原子式读写futex内部值 +futex.atomic_value().xxxx(...); + +Task<...> some_coroutine(...) { + ... + // 原子检测内部值是否为expected_value,是则挂起some_coroutine,否则直接继续执行 + co_await futex.wait(expected_value).on_suspend( + // 通过回调函数在协程挂起后接收相应的取消句柄 + // 注意,如果协程未经历挂起,回调不会被调用 + [&](Cancellation cancel) { + // 典型操作是把cancel句柄注册到某种timer机制,并在指定时间后调用cancel()发起取消 + // 从回调被执行开始,cancel就可用了,甚至在回调内部也可以直接发起cancel(),虽然一般这并没有什么意义 + on_timer(cancel, 100ms); + } + ); + // 有种可能执行到这里 + // 1. 未满足expected_value + // 2. 挂起后futex.wake_one或者futex.wake_all被调用 + // 3. 挂起后cancel()被调用 + ... +} +``` diff --git a/docs/coroutine/future_awaitable.md b/docs/coroutine/future_awaitable.md new file mode 100644 index 00000000..3bd26d71 --- /dev/null +++ b/docs/coroutine/future_awaitable.md @@ -0,0 +1,39 @@ +# future_awaitable + +## 原理 + +[Future](../future.md)本身的回调机制使其非常适合成为一个协程的awaitable,一定程度上也是因为协程内部本身也采用future/promise设计模式的原因;对于[Future](../future.md)进行awaitable的包装提供了两个不同版本,FutureAwaitable为独占模式,即一个Future对应单一Awaiter,一般情况下独占模式可以满足大多数需求;另一个版本是SharedFutureAwaitable共享模式,同一个future可以对应多个Awaiter,完成时同时恢复多个协程; + +## 用法示例 + +```c++ +#include "babylon/coroutine/task.h" +#include "babylon/future.h" + +using ::babylon::coroutine::Task; +using ::babylon::Future; + +::babylon::Future future = ... + +// 独占模式,value会从future中被move出来 +Task<...> some_coroutine(...) { + ... + // 执行后当前线程会挂起some_coroutine,可能会开始执行其他排队中的任务 + T value = co_await ::std::move(future); + // 当promise.set_value(...)被执行后会恢复执行some_coroutine + // some_coroutine依然会回到原先其绑定的executor执行 + // 采用co_await Future&&最终返回值会得到T&&,需要采用T本体接收 + ... +} + +// 共享模式,value会以引用行驶从future中被暴露出来,需要共享使用方考虑修改安全性 +Task<...> some_coroutine(...) { + ... + // 执行后当前线程会挂起some_coroutine,可能会开始执行其他排队中的任务 + T& value = co_await future; + // 当promise.set_value(...)被执行后会恢复执行some_coroutine + // some_coroutine依然会回到原先其绑定的executor执行 + // 采用co_await Future&最终返回值会得到T&,此时T指向了内部的本体,生命周期随future控制 + ... +} +``` diff --git a/docs/coroutine/images/awaitable.png b/docs/coroutine/images/awaitable.png new file mode 100644 index 0000000000000000000000000000000000000000..7eda3cdd933d8eb902a2e6bad556c8a30b000090 GIT binary patch literal 58651 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 rDf~Y7dtSR9=5o?Exn(U0W^+?(C#F1?Gm-y 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 literal 0 HcmV?d00001 diff --git a/docs/coroutine/images/cancellable.png b/docs/coroutine/images/cancellable.png new file mode 100644 index 0000000000000000000000000000000000000000..aed111fb6eae0dba40c122b402aa4697bfc2dd48 GIT binary patch literal 39160 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 literal 0 HcmV?d00001 diff --git a/docs/coroutine/images/futex.png b/docs/coroutine/images/futex.png new file mode 100644 index 0000000000000000000000000000000000000000..cf78e92a4c96061e15368e89efd60e646c4b8ff8 GIT binary patch literal 82096 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 NwuZiXjjCPf{{iA~VATKs literal 0 HcmV?d00001 diff --git a/docs/coroutine/images/promise.png b/docs/coroutine/images/promise.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4d3a0ad1808e62ac53866645f135365e2c4ba4 GIT binary patch literal 62634 zcmc$GWmp}_)-^7{-Q7uWcMa|kT!Op11VZrO?(V^Yy9IXw1b26L{hG|oy)$>7_xHzh zlGCTDuBzU>Yu8?DuS1A}oH)W8+&3T~APABYqDmkj5cMD+pn))8z!@n2%WL2b)KN)X z7^Hj@e-HQ&Wvnh~A}b3*3mn6MK!HMmfWI~Y0osG2{&@@v9OHsO{yq-^q6&)lpJQE6 z>i@P6G6#Y9vyBPx{`w;U`~$B3^Bp`3^uIl3f&JAQqCN}!uVc`_*UR!j&NG2GSUU*~ zM-UJ=wAX*2ASr3sARu6H<|^t=>asH2hPKx9`bM?}#`JF1cCS}~@VapWht|eU`owP5 zRyK~@ZhWM_TW|x%ucsMEiGMe7vg9LGmsKDZv2`#eW~XPQXC&o+LrhG}>tJNUtt2Y; z=jFgBK2kF$Cp&Hi23J>CdRG>DTL)7HCN3^621aHEW@b8|1)Zb2jg!6`osA>eAD#Tw zkEpSup@X@dlew)8@oT^O2DZ*le59nW1O4ack9j(ooBVeq8^=Fy3%Egs*WWNO(K9mq zr*Gg=-q*9-O2&@1R?e^8f3Puk;%Dal-S~e`|97-Mu99~!HwNbWdKo{{pO^go-2b*0 zv9-2yFm`l&ZO`^+`@f(2-}VY-wobNytsTq_C2gFH9e|7f9PO_O{@*SB?2DJ-)m(ow z-yhHB_gUcK@W0_@_|Jppe>3%FpBe;25JXZ`NW~5GFdf=WrDrAx+!rLfe%v#Dxkpz~ zF^cr#$=9z0m1?ELF5TtoLdfq$h0q}&A@d~AK=+V^g(YBM_h47>f@~XJmW-;+Qrp(bl=I)GgFjOc$D1h@5rdKb&kLD6 zz6iC-48|JMb?@kL|*8utHVdj)zeh{*!kh41>{wmJ?26iZFcLvu}2!^EG=T94l$oc!`5JEG8|t>!B*6={)r=NAvV233Z7AkEdNJY?d*xvB|ex zNCNn{xSC-Qm~@(#=R*wjmNUlzSi01DZC*^8sJlVlN3}BrGRaECO8I&|Prp(d-7dsC zSLWGfw7bk=DP{MUn(H~bzJ>q8mYb=9*R*FFkpjn?er_tr`?S2I9_VLi&87so*Rl-epKx4=}89e$&;%z zCFJkVOt1~sr~>uK?zXwkdSUw8hqqdWZ=$24Z}D_!uO_6yaBy&9spJdn{h$y=xerRK zjE7W<6gr36AZ@R=Q*D=lLBnE`lg-69&~s7U=kg@cw2Hs{rU(m11u zxv^MJS}x=)EWSzS>v~9nAki_W_A<0yPGG2MuNha6T3-)PWe%rtRU7t2@OfUpn*cYr zLqP`p`%8cd=&swNMR$z%Lgv@E4@WZNK}Dhu6B?X$t0387?;IA|eFUy_nw%ORfd|*L zOKOT|>OPjiN1dN59+^O+ybX*{`k@5#q+G8(LrA?kF)nVZ)^g@zl*hI^7-dxVcq=#< zX6o>KYlsHoFWhbk3B5f+E1L&ot%VZElyc3 zd;4NcV5QmBHjQ`hI|>Q{-{Op)To7dZNcn`O`Rw>RfTbZr{LjCP#J z^Hy_J#-;jr0^Tibs}s@;wW{GbEKu|Kmp|Ybw5yB;F83zg4?3ZVydI9~u^4o{Hv6N| zWo{eyxw7$Jz=@HlK_Bp5;S-$5836M3D2qA`UNxvly}MIq+|@VFj7KAg0_ zT+Qe??M)U&5_}aDw?Q8Fez-oO)2b5{M8(l6(`1|M@bo{=+)6^I}U&S2U{T#8`? zyFOi}b=MJw&ovQY3#a?6h#WZbO^2T_O;usVZ6h4s4BDQ-t!|~Y)k0Jd;=ivBEih`< z8|bR;OYs&(K{Bp|q^;m7yh?urk?`9rJFploPr_tze>Hu*= zyzDr}cQc+X(i`Rnjg*6@W7200DVlpz&Es{;Xvht{mbESa8O^l!>^U+=twMJ+n^v_{ z!iAazrXF=z>mB~pg!iP(*gpbv6cU)w+%*$zrSrjb?}Aw8H=6m>p*b{p-k<2DQuy3X zMU4qPRDLsv_GXvxiK7te6F>LgsH|^~q}n_FBy`0bPzl4~G#c*VBlt9t3YsYFN|NSly32W@*Iq78aN=oghCISV= zS64qy!U^nux>@3IIh809SZd_oF-7g_j_|S(PzThKq$rVgc^6ABE zbo_+7ryf`Pihc|~ALi_jhlwAPz3#RW7nvEyi)v_pJ_x+=u#fy4iMj0TX!ylnY}@;5 zv()e}Zz{+5_kVXuVtEJ$#Src4l!K4Cq1g98%w}Y}%}S$1!5N4@_zVhu-1cB&2|6*# z+S~a){};x^&KSp9mNs;(%&)rk{cj~Qp7f#C`HD`vV#4QE`PCmExo&ms&SJRe3zJfDr-(D|B!Cdq!#U81XMj*mu-#1KZc#;UxV;NUunBDJGFj#5t-1n^4n!fra^WB;+dk5k)-KdqCSLuTrAKd=7I&%Y1YdYs6X>p- zZ1?f;;weDrMbnkQF->VKEtK(PpT!{{2ruSLmod~%>_r-o9)!c9&->^a*rCE*Wfc~0 zGPN_N>6rC}cg1-|r;ewb@e;oJ;~nXudWh-rdiNart(?Zi0PHv2)~2#cZS_WneDjVs z@(VE|ERB#I(k%8`C!K@~y_me2?-qtdI)_lyL(SyhE~`x^R$0Z5k)wt}`%vM3F|`3r zGR)pJ>t(qSvJ2D#cSs?~e9I5ZYDgu*opNmy+zMnJBj<`1=a=I4JL#_Te&lRy|vZ{_Os;$ThHQuW@fsm{qHFp?mU5A0N7k`aeC!osi}n}aZ<)PSwn`Hf+Iv! z?C6e_#-tq;Ef1oD<51XP1WHiNyW;DMebz&$tPHgTM~zERnULydf#l(95HgQD@<=c= zY9f~33$Q(yK;UJX>!P}aNacl@e0TW4i7g9WQhYj6B!;hj-qy=%ppga4$wz|!1| zjacL*smg3i&)^5bQIoj4BrZ$9EJQk!!xWM+Pw$dlTVHY+EuD_C=O`eRb;6iVwgL}Xra7}_8@hJ ztRm7zXiW@G30wJg?Skb*>l-p z`}Mr#(goeGQjN*$bA|87&v!eSLVi$l2`x2SyibZ&iw!^XX7hP&i2GZlIthCsB(oI` zT@j0_{*hO4!fux1G<<8j-!IYF5pzI{)ePh#M|K!hq^@=vd{>ZDImetKWk8^llAP$c zGfMF$4$?#v1a(XjA{Qr$T1bWTENw=|HC-c9%oBHmFz=(Kc5ioMHz&ki<(;o&yE;4-QB~TDxjI*-&rsBH-<`)iGT>;^W&HA`6Xz59g*}OB zFD}K;h8Wt_OHghMWKef8?pWj;7K$qc*L&EE?vQRa z4oNdz_bm+Vx6=XZ_+OblKr|$bO3yGS(p54G5ay&52u#%d(LyA#W1%hY#szBhPia4V z`>(P5UC%Lf6%0JGJM*l>lGBkICe1fIFYE(Cp#sf%&1r^0yfBqDcklm~y z(l2&If<_dbDj2H9$WZLf)J3@`7K0@adY}g4Mas#rrEeKeX_%`Y7{0Th{69(&MhpHGd72544{T?I@7nq!%3s2Enc_7#rmLh9AwmXr2tA8d<;)YaKF!W zyIFFzr<#b?wF)s8`%X30!a5dU(C#Ss&)sm<2Zoq@k%$~78zph*n(jb>lzU2*+c9nZ zp3&T7H@Kop0_C8FDfN7=C7QBbU}N=(WjYGXKe54}A%cU=?e6gNEu#jaY2<;@$Bj3W z0j6Fty=#)mZ2kpU+AfWx#h_0* z!@6o~!{$FZ8Q@`_<;etVxhA1-gQa;ClygZ!V#+*Z{77{&Ff}*TWZ#mIJE!TgKPEzV+sa59v3 zqCF#+BSUa_Q@rXmLbf_V%_+HbZpDke!pt0Qi3Go-&bR&9$zk@eE+@qxX}C;dizH+-+8#LWk#4V^%74 z9!~DN49{aG2gnmlu*g;-YbDhbjRmVt)d@JmVTE97mv5r2jKLwAvVOlrqxBMPEcC8uEz6n*H>V=d&L2r|Dv>K zYtmB7<3-%JFZB}*S4e~4S(hPvJyhG>HeTT1b#%$o+_h5vKLVPYNEZA|-*U}G6~Y^9 z0BS)jIUg_1^|LeZG_h_7C)>|9MLAK@bCK(4&L?(1WXqi)tm6v9a8<|8vqOwjRr4}L z7eM6B--BVE>s!l-8x7_O=)W=g!1R@=Fd^e0+m{GqB#e7qpDk}kcdl)S@U!Skj?eIN z*j(L!rSb0@CKQ8#gCqNbUe9RXUnJ@R-Fa&zfRq&8v|%W6Oa1kyNA?AGdQlPeD6W@G zL#edu$qTg|%*9o^CnfKpUxE?Ll#cK*CA<9mee|Cqij*zvkaD?(bvYFKAIx?>I%mSM?w)riwbNWKzL<+rwhn{*iL6 z-aw$+@81+kK>dB--?R@BY=7de$SilXr|*ShQW>J+s2!P}uME*Goc>_Gi#{ zXX^i*&8a6q0(tvBd3H)nkLBRN*V6=iz|G^&s zlWC_Sj^F)1Ocr;sR_XNn_NieZ0B}=dxAvp``QCCUfev5^Y$gjvKB(#ZDpsZv$XrO{ zazsT%1*ibkIxE-~fd-$K=VTUBUAs<5I?bB?J<(E~=2w=a?XYS{ERrx?In`@MTujXS zv=jPZrXn&pxJbRy;9$B88WBI3&!uB`cb8+?ZDaRmZe5`8)?mC=oz+~0UOPZZrQGXz z-v!9e{8H0fsBG6|w<<*+VblPQOS{p~^<%UT4GoRSFaST3p^nG4h7x_Y;?-oTJx^K_p;mleK0Uuv zWcc$*Q=@}XoJLeVAbtOh^s^LT7J-zze#M(-<`Uq4Mggh`6%8#CpNrYB7k)7WV3^u~ zKm)f$4M}7K7z7}Ml-%4J2);?iQa13NX|vfbFRCWw3D?^!CCT+g5PT9S_5qTnuW!p& zmCv3ZPBwJ;y>9Is9M0tho~D5Cnd$R9*JJB`J!k6ZGHeLMl2A-Kk5ymjh9SY~yNjKN zWj6xFKRv$+AVZVrFhBfWJa2v3ET>!Uwo|Y6e*xCVd8P(~H238>i;<@9lmt@q5+s4g z@uov<9;_QnFx;EtC293-SgJII#X9tXvrM=35P-S^FmsWF*bV1yjrrvI#s<@BL8{HV zH|X&e0GnHa8?5aa9Uh3;*nS~?R@likAncCIu%lS?lwOd5{L6;AfXDX? z>4{^3qQGE-Me3y@gBNx`R^ z;=&AJHGmS>1svuT$HB$}@G#$ZgI3XnmBHlr%C)jK232(g_ON_NS{t zx~P-4ht*>#*F%X6g&9!03(;ia06lv3crixAVS_JJUEu33b~$kf&|O@6d9h;QxIG?R zJI%+&Ebq`d-vbm;z4OWPQ%)%TdKR_`-j3}$z)K1waQ5j7MhI`s==sRvAiMxj{}JE` zt_8=%e&w#&v#f9DSAH78>o_lk}pM!_;fbmys+A24rF=-X}$ zyuvu~tc~jeK*6CDB3-!`TtCqKne6olW+|+zvIW0}r#LGx3B<)fHj61iR3jec$M*o= z6&fDSc9O${%V9I@>QSayi!7bTlI=CEVVVsh>jzLcAIdbZ79GcGS02dq*63`x*CQP& z*DfdJP4S^JIczfs#xd1V#68c8zvoOivD%aXybB6~Uwa9#uNN?B{)~9+!O}|#NIY7o z?*o_A10z$6sq^*hgbyV*QCA1NDb!R z--(SNZcpyvAB=0%@C)$zvbggugQTA zl^?4aUg-|+`VK_LYr9SK_qQZJ!fjj?L!x%F3e#P1y;UZ+wi5LU0)rGo8s)}E^G(Mx zia60Zy)`|Z62F|0vv5{7KO8sPH!<5MvU3%St|Affr?tIP$O~1;f#YaJ{~g?^F<%$U z7aeE};8q#I%&5vYUW173A!R*6c;lrjyVx+R)hx2>;`Px&F^9o`Xyv?#uFJc3@xi%B znW=o-)m?`(x}M>|iI$D2gGN3LEuZ(nVg@2#M8 z+S5H-Q+*BRHZ5mjrr=;a1OAetIj{_@wj^C?)-5Nyhw&%O3%sbx7R}XxQB`LtDeq%S z6O6PZ9zMR|#8xX+*Kan`;=Gzt77-CS(h|*7>N-hdsg>8IirDlcJh#2S+%qv+e^2ur zG=wjT4tYsxmtlw|daEu5jBGYhS1xK-!=YErq`DVvfUZ-AI2ZZrIo_d z>o$M_ibkXbAwbtt(9zNa(6>K2s0vgy{bE-Z`ZL0QO%!Zg=WB_ee_g1cLZ4xj4mVL( z0EEf3&I$))TwZY|#|zDP718dAP^#4 z`A|-GxZH|YyPZ+m!~U@vT8kYL0&gCcf7|$(GJ?3tjjHVF^ zG{bhv4X-r9tu`4E&i|ed;fb`(`qq{^=Gp)FaMlJ|U&{rJ(!x?*P-1Q=*&J_E6Pw8Z z!kYi-QhBEzsPLF5k@H_I63iqkGe=(pA}d@&>N^|A5ws?AenMIM{0ZPC*lm}GX$R8` z*v@8>(e#z(ll)=^OaPL9`tui=aYTbRCVW&6B2^e)FX&jmHM)-1+v=IN4*r>suD-lx z+b=s3m_WjC3+Zd|>)Wdz6~QH>RoX(F<-0+`vgM(&N#w*4dEa(+P*6GO34)H5cc#|Zk05r$vHe-fC1IQ2G=h62?l=W3eZ zpXGBdmnQ2@qL|Fa1|Bp!=r$I;eOsYQ@2A(Dj9CVN@>c&sI+D3^6l{vftZASywqxq& zkl0zw7n0E~AQgxzgWhp$_kIdQB(T6M`75dS70SZCDA^x>H3YI9L{tFG`(^|_z02Ut z=HsSNkHkhVpp-qJv|$hY~6^;3}c8Uz=y5;dK4Mcoob#Rkao=bF|dV;V$ZK?(!om zdNE9s!Sny)-)u)kkI z(0w(t5Y~ee*%l>zsPKyl-{IFeAcKTLz*T2DY0O;)_O;(Z$%hPpF1Dtk*RP9SFbmc0 zTeo1k-y!B-5C`Us(lzdy`(AhCTu!Rr3Ga889>2pNTcj@BT2vfB!#qeGSvzfkv7C z=n3fcHU=1P#9K|NkKA5aD2Bd=D9wTT@8I_!T_Xsz}_i$KEGfAFjfz2CUf1NkoZm|1U2Xk|M1bT zL7!C&&g^CsfsaxczUGq!;Vnnoa$Oeb0xcTJRmM`k7TM+usG?GmD!r7t*XWEf>C_j2 zeZin!9O@58yA=Q)@r!_X6~KNFe}?Vu>x*nTDu8SsIk@qfY_g_>K9w=@_=p<3m~^^u zd+Lh?pK&>&m7SgK%LS`J_uKfZmSDy;{GBuX&b&aDrX=zasN#3g6KFPD+MQ_a(+t*3 zrMdVdo0;_ftX0lsAB#wT?4$y!z}HySMt=x(1c{NO7?_YpW2^uRz_7lmEDST<_pd@K zGMrqyFbk*PSuc!jJJ2{=1dIo6PYY@nY_!{JfEod)0Fmr(qDHi%9%57alFpVu7D6-& z9eEbO1r&*hTyc#jaSwQ^jfzK?QRl1!{u61`O+CWwO1eKMsX0$AS)O0a;$WQp_qzQ>22+gAI6yDW|}FE7LNC0(sM@OGv5h=AR! z`(Q=3RHZoP1($Z{k2Ud_@tIWaPm;)2koddNK+IaAj#9g;L`C$~P(U04M69vl0Eu8u zN;`k#A~(lzb!2!qsVS|1*JL

+GVY0nk$%5C9D#mXqS| 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 coroutine_plain_function(...) { + ... + } +}; +// Executor提交协程时不会返回协程标称的Task<...>而是内部实际co_return的结果的Future包装Future<...> +// 返回的future也可以和提交普通函数一样被get或者wait_for +auto future = executor.execute(S::coroutine_plain_function, ...); +// 同样支持不关心完成情况的单纯submit +auto success = executor.submit(S::coroutine_plain_function, ...); + +// 支持成员函数 +struct S { + Task<...> coroutine_member_function(...) { + ... + } +} s; +auto future = executor.execute(&S::coroutine_member_function, &s, ...); + +// 支持operator() +struct S { + Task<...> operator()(...) { + ... + } +} s; +auto future = executor.execute(s, ...); + +// 支持lambda +auto future = executor.execute([&](...) -> Task<...> { + ... +}); + +// 启动子协程 +Task<...> some_coroutine(...) { + ... + // 执行后当前线程会挂起some_coroutine并切换到coroutine_member_function + ... = co_await s.coroutine_member_function(...); + // 当coroutine_member_function执行完成后会切换回来 + ... +} + +// 将子协程启动到其他Executor +Task<...> some_coroutine(...) { + ... + // 执行后当前线程会挂起some_coroutine,可能会开始执行其他排队中的任务 + // coroutine_member_function会被发送到other_executor执行 + ... = co_await s.coroutine_member_function(...).set_executor(other_executor); + // 当coroutine_member_function执行完成后会恢复执行some_coroutine + // some_coroutine依然会回到原先其绑定的executor执行 + ... +} + +//////////////////////////////// 高级用法 ////////////////////////////////// + +// 默认coroutine的执行状态本体随task一同销毁,可以主动release释放并得到句柄 +std::coroutine_handle<...> handle = some_coroutine(...).release(); +// 可以将句柄传输给其他线程并执行,这也是Executor内部的做法 +handle.resume(); +// 注意无需调用destroy,对于非co_await作为子协程拉起的情况,运行结束后会自动销毁 +// handle.destroy(); +``` + +### Task co_await custom type + +```c++ +#include "babylon/coroutine/task.h" + +using ::babylon::coroutine::Task; + +// 对于本身已经满足awaitable标准的类型,不需要任何特化 +// 例如其他协程机制的task,可以直接进行混合co_await +Task<...> some_coroutine(...) { + ... + ... = co_await some_awaitable; + ... +} + +// 对于本身不满足awaitable的情况,可以通过转换包装支持 +template <> +class BasicCoroutinePromise::Transformer { + public: + // 第一个传入参数为发起co_await的协程的promise,不关心的话可以忽略 + // 在Task自身的await_transform中promise用来继承Executor + static SomeCustomAwaitable await_transform(BasicCoroutinePromise&, + SomeCustomType&& some_custom_type) { + return to_custom_awaitable(::std::move(some_custom_type)); + } +}; +Task<...> some_coroutine(...) { + ... + ... = co_await some_custom_type; + ... +} +``` diff --git a/src/babylon/concurrent/deposit_box.h b/src/babylon/concurrent/deposit_box.h index 66174c6c..2b90e24f 100644 --- a/src/babylon/concurrent/deposit_box.h +++ b/src/babylon/concurrent/deposit_box.h @@ -166,7 +166,7 @@ inline typename DepositBox::Accessor DepositBox::take( template inline T* DepositBox::take_released(VersionedValue id) noexcept { - auto& slot = _slots.ensure(id.value); + auto& slot = _slots[id.value]; if (slot.version.compare_exchange_strong(id.version, id.version + 1, ::std::memory_order_relaxed)) { return &*(slot.object); @@ -182,7 +182,7 @@ inline void DepositBox::finish_released( template inline T& DepositBox::unsafe_get(VersionedValue id) noexcept { - auto& slot = _slots.ensure(id.value); + auto& slot = _slots[id.value]; return *slot.object; } // DepositBox end diff --git a/src/babylon/coroutine/futex.h b/src/babylon/coroutine/futex.h index c0cbe79a..afd35348 100644 --- a/src/babylon/coroutine/futex.h +++ b/src/babylon/coroutine/futex.h @@ -15,6 +15,13 @@ class Futex { class Awaitable; class Cancellation; + inline Futex() noexcept = default; + Futex(Futex&&) = delete; + Futex(const Futex&&) = delete; + Futex& operator=(Futex&&) = delete; + Futex& operator=(const Futex&&) = delete; + inline ~Futex() noexcept = default; + // Get the futex word to manipulate inline uint64_t& value() noexcept; inline ::std::atomic& atomic_value() noexcept; diff --git a/test/logging/test_async_file_appender.cpp b/test/logging/test_async_file_appender.cpp index bd2eae2d..a048fe07 100644 --- a/test/logging/test_async_file_appender.cpp +++ b/test/logging/test_async_file_appender.cpp @@ -74,7 +74,7 @@ TEST_F(AsyncFileAppenderTest, write_to_file_object) { TEST_F(AsyncFileAppenderTest, write_happen_async) { ASSERT_EQ(0, appender.initialize()); - for (size_t i = 0; i < 2000; ++i) { + for (size_t i = 0; i < 1000; ++i) { LogStream ls(appender.page_allocator()); ls << "this line should appear in pipe with num " << i << ::std::endl; appender.write(ls.end(), &file_object);