C++ Coroutines at Scale - Implementation Choices at Google - Aaron Jacobs - C++Now 2024

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 ม.ค. 2025

ความคิดเห็น • 13

  • @MatthewWalker0
    @MatthewWalker0 6 หลายเดือนก่อน +6

    Great talk with some deep knowledge sharing, and makes me more hopeful for broader use of co-routines! (Jacobs sure seems to be :) ) Making `Co` non-moveable and having a separate Future that takes values seems to be a great way to solve the parameter lifetime issue.
    The event wait/notify appraoch (delaying the work-stealing to the next suspend) and the cancellation approach (like an exception was thrown when co_await-ing) keeps things neat. Also, he constant theme of stack frame elision is brilliant
    Overall, a bunch of ideas that it seems every coro library should take note of!
    Also, several examples of weird concurrency that comes up when having lots of users...

  • @27182818284590452354
    @27182818284590452354 6 หลายเดือนก่อน

    Coroutines and job systems complement each other beautifully.

  • @lucasbraune
    @lucasbraune 5 หลายเดือนก่อน +2

    Great talk!

  • @denisyaroshevskiy5679
    @denisyaroshevskiy5679 6 หลายเดือนก่อน +3

    I like the idea of splitting Co and Future.

  • @Ariccio123
    @Ariccio123 4 หลายเดือนก่อน +1

    44:30 ok can he tell us the magic implementation details?

  • @guillaumewenzek4210
    @guillaumewenzek4210 4 หลายเดือนก่อน +1

    "You can't count on any sort of expertise". Hearing this makes me crazy. Companies are spending so much to make every employee a replacable cog. Even Google.

  • @wickmar3036
    @wickmar3036 6 หลายเดือนก่อน +2

    Is this library open source or planned to be?

  • @Bestmann3n
    @Bestmann3n 5 หลายเดือนก่อน

    I implemented my own fibers from scratch some time ago. instantly had some bizarre issues that turned out to be stack overflows. in my code I sent all my fibers to a function that simply printf:ed the ID of the thread and apparently 4kb of stack per fiber was not enough to handle that.

  • @ladnir
    @ladnir 6 หลายเดือนก่อน +1

    Interesting ideas but not a fan of the closed api. This is all to support his cancelation and the cost is it not working with thirdparty awaitables. Well maybe he has an await_transform in there? Idk, but I think coroutines coolest part is the open api.

  • @johnjones8330
    @johnjones8330 6 หลายเดือนก่อน

    Senders/Receivers is apparently preferring structured concurrency.

  • @ericcartmann
    @ericcartmann 6 หลายเดือนก่อน

    >50% ? ? ?

  • @Voy2378
    @Voy2378 5 หลายเดือนก่อน

    Nice talk, but I got a feeling this was partially inspired by ASIO, would be nice if presenter or somebody from audience addressed that point.

  • @JoseJimenez-il5vs
    @JoseJimenez-il5vs 6 หลายเดือนก่อน

    Thr pervasive use of C++ at Goolge is why so many postmortems have been written by SRE over the years. Throw it in the tashcan where it belongs and use modern safe languages like Go and Rust for your backend micrroservices.