Skip to content

Fix Push stale-reaper thread handoff compilation #82

Description

@ULookup

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

  • 修正 PushServerBuilderPushServer 传递 stale-route reaper 线程的类型。
  • 保持线程由 builder 成员持有,PushServer 仅在关停时通过指针停止并 join。
  • 运行 Push 单目标编译验证。

Non-goals

Acceptance Criteria

  • cmake --build build --target push_server -j2 成功。
  • PushServer 与 builder 的析构顺序继续保证线程指针在 server->start() 和关停期间有效。
  • stale-route reaper 的启动、停止和 join 路径不改变。

Test-first Plan

RED:在原始基线上运行 cmake --build build --target push_server -j2,观察构造参数 std::threadstd::thread* 不匹配的编译错误。GREEN:传入 builder 线程成员的地址后重跑同一命令。

Risk and Security

风险集中在线程生命周期。main 中 builder 先声明、server 后声明,因此 server 先析构,线程指针在服务运行与关停期间有效。改动不触及凭据、网络输入或持久化数据。

Architecture Impact

No。仅修复现有线程所有权接口的调用方式。

Core-flow Impact

No。业务核心流程不变。

Required Skill Updates

None。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions