Their discussion of why kernels need multiple mutable references and how this is interacts with linear types — how it requires a work around — was a highlight.
The unsafe part of TakeCell is curious: https://github.com/helena-project/tock/blob/master/kernel/src/common/take_cell.rs#L52
TakeCell
It seems like double access to a TakeCell would result in one thread/holder “doing nothing” (and having to retry?).
Yes, the map call will return an error so failure will be known. It is not explicitly stated but the authors clarified it on reddit.
Their discussion of why kernels need multiple mutable references and how this is interacts with linear types — how it requires a work around — was a highlight.
The unsafe part of
TakeCellis curious: https://github.com/helena-project/tock/blob/master/kernel/src/common/take_cell.rs#L52It seems like double access to a
TakeCellwould result in one thread/holder “doing nothing” (and having to retry?).Yes, the map call will return an error so failure will be known. It is not explicitly stated but the authors clarified it on reddit.