博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Seastar不能使用引用蒱获的原因
阅读量:3575 次
发布时间:2019-05-20

本文共 374 字,大约阅读时间需要 1 分钟。

seastar::future
incr(int i) {
using namespace std::chrono_literals; // Oops, the "&" below is wrong: return seastar::sleep(10ms).then([&i] {
return i + 1; });}

i 是一个栈变量,incr ()函数立即返回,因此当延续最终运行时,incr ()返回很久之后,这个地址将包含不相关的内容。

所以一般使用seastar::lw_shared_ptr,以值捕获作为传递方式。也可以使用seastar::do_with(sta::move(obj),[](object obj){}); 的方式延长对象生命期,这样就可以以引用的方式进行捕获。

转载地址:http://njxgj.baihongyu.com/

你可能感兴趣的文章
Spring中的设计模式
查看>>
如何设计一个秒杀系统 -- 架构原则
查看>>
如何设计一个秒杀系统 -- 动静分离方案
查看>>
JWT 快速了解
查看>>
实习日志一
查看>>
Springboot读取自定义配置文件的几种方法
查看>>
ZigbeeCC2530 --(裸机和协议栈)串口时钟配置
查看>>
ZigBee开发环境搭建 ----IAR for 8051与SmartRFProgram等软件安装使用
查看>>
Python ---太空射击游戏
查看>>
C/C++之struct的小知识
查看>>
温湿度传感器(AM2312)
查看>>
抖音无水印视频下载,不用借助第三方网站【详细教程】
查看>>
推荐几款好用的Chrome插件,码农的利器。
查看>>
sql 数据库的优化【经验贴】
查看>>
一篇认识 Zookeeper
查看>>
一篇认识kafka
查看>>
Kafka 实战
查看>>
一篇认识 Elasticsearch
查看>>
爬虫篇——腾讯新闻的详细采集过程(列表新闻和新闻内容)
查看>>
NIO 服务器端不阻塞的一个Bug解决
查看>>