17 ms·
I suspect it stops being so nice when you want to do something equivalent to go's `select` statement. Though that's purely speculation, and if I'm wrong it shou
by pickdenis 6y ago
I suspect it stops being so nice when you want to do something equivalent to go's `select` statement. Though that's purely speculation, and if I'm wrong it should definitely go in the examples!
- dallbee 6y agoYour skepticism made me look through the library more carefully. I came across some limitations in comparison to what Go provides: 1. As you suggest, there's no equivalent to the `select` mechanism. To perform the equivalent, you must busy loop and call `csp_chan_try_pop`. 2. It appears you cannot nest coroutines. 3. The mutex implementation does not provide an RWMutex. 4. `csp_yield` seems somewhat necessary for practical applications. Normally I would not use another language as a basis for comparison to a C library, but that's precisely what the author of Libcsp appears to be aiming for. All that said, there's a really slick implementation of a lock free RB queue backing this library, and It's a neat project. I think it would stand on its own better than as a "go style in C" library.
- alexchamberlain 6y agoRB queue?
- erling 6y agoring buffer queue [0] [0] https://github.com/shiyanhui/libcsp/blob/48782baf0e63cbf2914930c67adbb884604fc3b7/src/rbq.h#L33 https://github.com/shiyanhui/libcsp/blob/48782baf0e63cbf2914...