ev-drogon-shared-ptr-binder-001¶
| 字段 | 值 |
|---|---|
| 项目 | drogonframework/drogon |
| 固定 commit | 3aae769cc405 |
| 路径 | lib/inc/drogon/HttpAppFramework.h |
| 行段 | L542-L545 |
| 特性 | std::shared_ptr 与 std::weak_ptr |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-30 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 make_shared 创建处理器并让异步队列共享其生命周期
为什么典型¶
binder 需要活到事件循环执行,shared_ptr 被 lambda 捕获后引用计数延长对象寿命,无需手工管理。
摘录¶
auto binder = std::make_shared<internal::HttpBinder<FUNCTION>>(
std::forward<FUNCTION>(function));
getLoop()->queueInLoop([binder]() { binder->createHandlerInstance(); });
备注¶
生产路径;make_shared 一次分配对象与控制块,lambda 按值捕获 shared_ptr 跨越同步调用边界。