rxcpp:当超出范围时自动取消订阅

  • 本文关键字:取消 范围 rxcpp c++ rxcpp
  • 更新时间 :
  • 英文 :


虽然rxcpp::composite_subscription有一个方法unsubscribe,但是它没有在销毁时调用它

rxcpp库包含一个类,自动调用unsubscribe时,对象超出了作用域?

订阅没有在析构函数中调用unsubscribe()的原因是因为它是一个取消句柄,而不是RAII对象。订阅对象可以被复制,也可以被丢弃。

如果订阅析构函数取消订阅,则放弃订阅将取消工作。这不是订阅合同。保持订阅活动不会使工作保持活动,丢弃订阅不会停止或破坏工作(这是在评论中正确提到的弱生存期)

这里真正的问题是rxcpp以与其他rx库相同的方式建模生命周期。这些库使用GC来管理生命周期。

一个新的库正在构建中,它有一些变化来支持结构化并发和非gc生命周期。有Lewis Baker和Eric Neibler的演讲和论文解释了Single的形式。经典的rx序列值现在正在原型化。

相关内容

  • 没有找到相关文章