Theseus
Theseus copied to clipboard
Tracking: improvements to `async_channel` for MPMC and fault recovery
Checklist:
- [x] Properly track sender and receiver counts (#707, solves #703)
- [x] add
Receiver::obtain_sender()
andSender::obtain_receiver()
methods to enable channel to recover from disconnection - [ ] add test scenarios to
applications/test_channel
- the clone method on Sender/Receiver
- dropping a Sender or Receiver when multiple ones exist already, rather than just a single one.
- Trying to send to or receive from a disconnected channel
- Whether the Receiver::sender() and Sender::receiver() methods properly change the Channel's state in the case of multiple endpoints or a single endpoint.
- Actually recovering from a channel disconnection using the above methods and then successfully sending and/or receiving through the channel
- Anything with more than two tasks -- a common use case would be to have several sending tasks and several receiving tasks, so we want to test whether that works properly.
I run make run
in terminal. After it finished loading everything, I press any arbitary button on the keyboard and here is the output:
[W] kernel/console/src/lib.rs:53: Currently ignoring inputs on serial port COM1.
--> Note: QEMU is forwarding control sequences (like Ctrl+C) to Theseus. To exit QEMU, press Ctrl+A then X.
I think I'm supposed to use the Theseus terminal for running the tests (which helps me add the test scenarios correctly). How do I run the tests on Theseus terminal?
You're typing in the host terminal, which is what Theseus is using to print its log to (over the virtual serial port). You want to type in the graphical terminal that shows up within a QEMU window.