about summary refs log tree commit diff stats
path: root/arc/counters.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-09-14 19:25:55 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-09-14 19:25:55 -0700
commitf8e6e864d85fb28bc64ad6af3815a7254497d4d2 (patch)
tree5a402c7af3445aa143e55411f306a1d40ddbc20a /arc/counters.mu
parent445bc53e6a6b3d87f35f5bffc6a87a9b4d73a2c1 (diff)
downloadmu-f8e6e864d85fb28bc64ad6af3815a7254497d4d2.tar.gz
3351 - new but incomplete synchronization setup
Previously our channels were based on an unconventional
`wait-for-location` primitive that waits for a specific address to
change its contents. This only works as long as a channel has a single
reader and a single writer routine. To support multiple readers and
writers we switch to a more conventional compare-and-set primitive.

There's still a couple of failing scenarios, though -- the ones using
`wait-for-routine-to-block`, because the new approach never blocks on an
empty or full channel, just yields CPU for a time before polling. Hmm,
how to fix this?
Diffstat (limited to 'arc/counters.mu')
0 files changed, 0 insertions, 0 deletions