funkce fetch() musí být napsaná tak, aby vrátila objekt awaitera. Tam začíná celá magie. Představ si, že to není fetch (moc složitý) ale třeba recv (ze socketu)
co_await postupně zavolá tři funkce awaiteraTakže tvá odpověď na otázku. Záleží na implementaci. Pokud daná funkce něco řeší asynchroně, musí si k tomu zařídit nějaká vlákna a postavit vlastní asynchroní systém. Korutině je to jedno, ta komunikuje s tím mechanismem přes awaitera, což je takový zástupce toho mechanismu. Výhodou je, že dokud celá operace je stále v procesu, instance awaitera je po celou dobu k dispozici. Jakmile je operace kompletní, awaiter je zdestruován
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 50 602×
Přečteno 23 674×
Přečteno 22 664×
Přečteno 20 632×
Přečteno 17 622×