Target Version
3.0-dev,基线提交 a75fc8721b99e5c0b4421d0c58b5618bbe71ff31。
Evidence
PushServer 构造器的第八个参数类型为 std::thread*。
PushServerBuilder::build() 当前向该参数传入 std::move(_stale_reaper_thread),类型为 std::thread。
cmake --build build --target push_server -j2 在编译 push/source/push_server.cc 时稳定报错 no matching function for call to PushServer::PushServer(...)。
Problem or Goal
恢复 3.0-dev 上 Push 服务的可编译性,同时保持现有 stale-route reaper 的所有权和关停语义。
Scope
- 修正
PushServerBuilder 向 PushServer 传递 stale-route reaper 线程的类型。
- 保持线程由 builder 成员持有,
PushServer 仅在关停时通过指针停止并 join。
- 运行 Push 单目标编译验证。
Non-goals
Acceptance Criteria
Test-first Plan
RED:在原始基线上运行 cmake --build build --target push_server -j2,观察构造参数 std::thread 到 std::thread* 不匹配的编译错误。GREEN:传入 builder 线程成员的地址后重跑同一命令。
Risk and Security
风险集中在线程生命周期。main 中 builder 先声明、server 后声明,因此 server 先析构,线程指针在服务运行与关停期间有效。改动不触及凭据、网络输入或持久化数据。
Architecture Impact
No。仅修复现有线程所有权接口的调用方式。
Core-flow Impact
No。业务核心流程不变。
Required Skill Updates
None。
Target Version
3.0-dev,基线提交
a75fc8721b99e5c0b4421d0c58b5618bbe71ff31。Evidence
PushServer构造器的第八个参数类型为std::thread*。PushServerBuilder::build()当前向该参数传入std::move(_stale_reaper_thread),类型为std::thread。cmake --build build --target push_server -j2在编译push/source/push_server.cc时稳定报错no matching function for call to PushServer::PushServer(...)。Problem or Goal
恢复 3.0-dev 上 Push 服务的可编译性,同时保持现有 stale-route reaper 的所有权和关停语义。
Scope
PushServerBuilder向PushServer传递 stale-route reaper 线程的类型。PushServer仅在关停时通过指针停止并 join。Non-goals
Acceptance Criteria
cmake --build build --target push_server -j2成功。PushServer与 builder 的析构顺序继续保证线程指针在server->start()和关停期间有效。Test-first Plan
RED:在原始基线上运行
cmake --build build --target push_server -j2,观察构造参数std::thread到std::thread*不匹配的编译错误。GREEN:传入 builder 线程成员的地址后重跑同一命令。Risk and Security
风险集中在线程生命周期。
main中 builder 先声明、server 后声明,因此 server 先析构,线程指针在服务运行与关停期间有效。改动不触及凭据、网络输入或持久化数据。Architecture Impact
No。仅修复现有线程所有权接口的调用方式。
Core-flow Impact
No。业务核心流程不变。
Required Skill Updates
None。