4 ms·
> In my experience simple blocking code is incredibly misunderstood. I don't think so. You can't even implement a full-duplex protocol properly with sync IO si
by mzimbres 2y ago
> In my experience simple blocking code is incredibly misunderstood.
I don't think so. You can't even implement a full-duplex protocol properly with sync IO since reading and writing can't happen at the same time on the same thread. Splitting them to different threads also won't help since accessing shared state requires synchronization with e.g. mutex that kills again simultaneous reading and writing.
- liontwist 2y agoHow do you propose to implement duplex IO? And what’s the example case? With threads the reading and writing can happen simultaneously. The synchronization is only on whatever data you need to share. Note that if reading and writing are dependent, then single thread actually makes sense because you can’t do one without the other. Otherwise the pattern of logic you will execute for reading or writing is completely different, which is why threading is the perfect abstraction.
- samsquire 2y agoI implemented split IO with io_uring, epoll and eventfd and my own thread safe comm pattern You can write to an eventfd to wake up io_uring listening on an epoll instance.