Anyway, current future has no continuations, so there's no much difference between passing the task pointer to be awaited and returning a future
-
-
BTW you have no plans to add continuations to enkiTS right? (Been evaluating different task engines for months and yours is one of the options heading the list. I don't want to write it myself and having to maintain it in production)
2 vastausta 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjille @Manu343726 ja @matt77hias
The current model in enkiTS is that tasks can call other tasks and waiting for tasks will run any available tasks. This means the stack can grow with each dependency, so I'm considering adding explicit dependencies.
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
In my experience with tasks, having Wait assist on the queue is a great way to cause deadlocks. I basically abolished Wait from my task library and put an explicit “AssistOnQueue()” function. Usage of it is considered code smell, but valid rarely.
2 vastausta 0 uudelleentwiittausta 0 tykkäystä -
What do you mean with "wait assist"? (I am not that familiar with the parallel programming slang) :P
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
When the implementation of Wait() is to keep busy working on other tasks, it is assisting on the work queue while waiting. But waiting and just sleep-looping is equally bad. IMO, avoiding waits at all cost is worth the effort. This is what makes continuations worthwhile.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
that's why I want continuations, to never explicitly wait but be fully reactive
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
Vastauksena käyttäjille @Manu343726, @tloch14 ja
waiting is an antipattern, pipelining and reactive-programming makes everything simpler and more efficient.
2 vastausta 0 uudelleentwiittausta 0 tykkäystä -
I'm skeptical when people say "reactive" programming. Reactive sounds like immediately invoked callbacks, like ReactiveUI. I've seen those call stacks. I've seen that code. I don't like it.
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
reactive as in reacting to events (Arrived network packet that triggers processing), regardless of how it's implemented (I don't like immediately invoked callbacks either). Everything being a continuous flow of async processing, no waits except IO waits in the loooooow event loop
2 vastausta 0 uudelleentwiittausta 1 tykkäys
Why not Async IO?
-
-
sorry, by IO waits I mean CPU IO waiting. The event loop underlying the event->task system could be doing whatever else (epoll etc)
0 vastausta 0 uudelleentwiittausta 1 tykkäysKiitos. Käytämme tätä aikajanasi parantamiseen. KumoaKumoa
-
Lataaminen näyttää kestävän hetken.
Twitter saattaa olla ruuhkautunut tai ongelma on muuten hetkellinen. Yritä uudelleen tai käy Twitterin tilasivulla saadaksesi lisätietoja.