3 ms·
Isn't this something already provided by libtask? Libtask was written by Russ Cox.
by coliveira 8y ago
Isn't this something already provided by libtask? Libtask was written by Russ Cox.
- Jtsummers 8y agoBased on a very cursory check, it seems libtask doesn't do channels. Libmill does, in the style of Go. So libmill seems to be more a superset of libtask.
- p_l 8y agoGo channels et al are actually a syntax sugar for a C library that later got subsumed and rewritten in Go, but can still be used - libthread
- aidenn0 8y agolibtask does have channels[1]. libdill (also by the creator of libmill) has some features that libtask does not. [edit] Also one should note that libtask predates Go, and so the API definitely feels very different. Libmill seems to specifically have a goal of making the usage feel "go-like" 1: https://swtch.com/libtask/channel.c https://swtch.com/libtask/channel.c
- Jtsummers 8y agoI missed that, thanks. I did say it was a cursory check. I somehow overlooked it there at the top and bottom of the main libtask page.
- nicklaf 8y agoIt's amusing to note that the rewriting of a concurrent language as a C library has happened before in Bell Lab's history (by some of the same people who worked on Go and its precursors). Specifically, the same thing we're talking about here already happened with Alef[0], a CSP-based language, which was scrapped in favor of a C library[1] (man 2 thread) in the third edition of the Plan 9 OS[2]. [0] http://doc.cat-v.org/plan_9/2nd_edition/papers/alef/ http://doc.cat-v.org/plan_9/2nd_edition/papers/alef/ [1] http://man.cat-v.org/plan_9/2/thread http://man.cat-v.org/plan_9/2/thread [2] http://doc.cat-v.org/plan_9/4th_edition/papers/release3 http://doc.cat-v.org/plan_9/4th_edition/papers/release3