Asio 异步模型

317 天前
 zsxzy

一份很不错的资料, 描叙 Asio 的异步模型

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2444r0.pdf

3409 次点击
所在节点    C++
9 条回复
xxwnc
317 天前
good share
Jzdoxc
317 天前
感谢分享
JustdoitSoso
317 天前
最近在用 asio ,感谢分享
adian
317 天前
感谢分享
FlashEcho
317 天前
还有相关的 TS ,P2300 也挺不错的,值得一看
dkl1999
317 天前
good
fenglala
317 天前
请教一下,第 17 页的样例代码中,proxy 的函数实现中 co_await 两个 transfer 和一个 watchdog ,

co_await (
transfer(client, server, deadline) ||
transfer(server, client, deadline) ||
watchdog(deadline)
);

transfer 接受的 socket 两个都是引用传递,

transfer(tcp::socket& from, tcp::socket& to

如果 watchdog 超时返回了,导致 proxy 函数结束了,这时候 client 和 target 对象都会被析构,此时 transfer 还没返回,在 transfer 里调用 from 和 to 对象会不会有问题?如果没有问题,为啥这样写没有问题,from 和 to 的生命周期我理解已经结束了呀,是在哪里有延续呢? @zsxzy 感谢答复
tyzandhr
316 天前
@fenglala 这里管理 server 和 client 生命周期的应该是外部调用者才对吧。保证在 transfer 结束时外部没有被析构,正常外面一般是套个 while ( 1 )来保证不结束的
fenglala
316 天前
@tyzandhr 看起来你和我的理解是一致的,我也觉得这里示例代码 client 和 target 局部变量引用传递生命周期有问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1095980

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX