V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsxzy
V2EX  ›  C++

Asio 异步模型

  •  
  •   zsxzy · 9 天前 · 1543 次点击

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

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

    9 条回复    2024-12-10 10:20:01 +08:00
    xxwnc
        1
    xxwnc  
       9 天前
    good share
    Jzdoxc
        2
    Jzdoxc  
       9 天前
    感谢分享
    JustdoitSoso
        3
    JustdoitSoso  
       9 天前 via Android
    最近在用 asio ,感谢分享
    adian
        4
    adian  
       9 天前
    感谢分享
    chesha1
        5
    chesha1  
       9 天前
    还有相关的 TS ,P2300 也挺不错的,值得一看
    dkl1999
        6
    dkl1999  
       9 天前
    good
    fenglala
        7
    fenglala  
       9 天前
    请教一下,第 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
        8
    tyzandhr  
       9 天前 via Android
    @fenglala 这里管理 server 和 client 生命周期的应该是外部调用者才对吧。保证在 transfer 结束时外部没有被析构,正常外面一般是套个 while ( 1 )来保证不结束的
    fenglala
        9
    fenglala  
       8 天前
    @tyzandhr 看起来你和我的理解是一致的,我也觉得这里示例代码 client 和 target 局部变量引用传递生命周期有问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:45 · PVG 07:45 · LAX 15:45 · JFK 18:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.