|
Eric Niebler
@
ericniebler
Seattle, WA
|
|
Husband, father, software developer, consultant, speaker, trainer, author, artist, coffee drinker, and former wanderer. he/him
|
|
|
2.730
Tweetovi
|
105
Pratim
|
5.496
Osobe koje vas prate
|
| Tweetovi |
|
Eric Niebler
@ericniebler
|
3 h |
|
In that case.... pic.twitter.com/hJmtl30Jir
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
3 h |
|
Wow, I had no idea such a book existed! Thanks.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
14 h |
|
Range-v3 is hardly perfect. @joncaves is the code conforming?
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
24 h |
|
Well done. Starting is the hardest part.
|
||
|
|
||
| Eric Niebler proslijedio/la je tweet | ||
|
Corentin
@Cor3ntin
|
31. sij |
|
A Universal I/O Abstraction for C++
New blog post about executors, asynchronous I/O, io_uring, coroutines and more !
➡️ cor3ntin.github.io/posts/iouring/ ⬅️ pic.twitter.com/orSvys0cdo
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
30. sij |
|
I'm not picking nits. I'm not criticising anybody for using "journeyman." I'm trying to find a different word because *I'm* trying to do better.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
30. sij |
|
Language is flexible. More than some people, it seems.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
"man" will be gender neutral when every person has a penis.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
Ha! I kind of like 'wright'. It has an old-timey vibe.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
Interesting! Now I wonder if "journeyman" has a similar negative connotation in American English that I'm simply not aware of.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
Makes me thing of hipsters with handlebar mustaches.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
I think it seems backward to you because you have it backward. :-) Senders are producers that yield values. A receiver is basically a callback or continuation, like the rest of the coroutine after a co_await or co_yield. It receives the value that the sender produced.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
In English, a "journeyman" is someone who has acquired a skill through apprenticeship, is proficient and effective though not exceptional.
It is exactly the word I'm looking for, except is it unfortunately gendered. Is there a gender-neutral word I could use instead?
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
The retry algorithm itself is an example of such. We might even make them chain with the pipe operator, as range adaptors do.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
29. sij |
|
"signaled by destruction" ... of what?
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
28. sij |
|
I suspect the disconnect is because you are thinking of senders as if they were futures. They're more primitive than that. When you destroy a future, there is a tree of asynchronous outstanding work that needs to be cancelled. When you destroy a sender, there's nothing to cancel.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
28. sij |
|
Sender/receiver doesn't impose a model for requesting stop or of propagating such a request upstream. (IIUC, that's what you want.) It has a channel that a task can use to notify downstream tasks that it has responded to a request to stop.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
28. sij |
|
Coroutines *always* require additional overhead. The frame is dynamically allocated and the continuation is type-erased. Sometimes the compiler is smart, and sometimes not so much. 🤪
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
28. sij |
|
Detached computation is often undesirable because it introduces a nasty nondeterminism. Sometimes it's fine, but the fundamental async basis ops shouldn't force it.
|
||
|
|
||
|
Eric Niebler
@ericniebler
|
28. sij |
|
Using destruction to request cancellation forces a hard choice because ~T() is synchronous and cancellation is async and racy. ~T() must either block for cancellation to complete or let the cancelled task run detached. Both have their drawbacks.
|
||
|
|
||