-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
help wantedExtra attention is neededExtra attention is neededperformanceEfficient use of time and spaceEfficient use of time and spaceunder considerationDev has not yet decided whether or how to implementDev has not yet decided whether or how to implement
Description
If the child process emits a large number of output lines at once, elapsed will currently clear & redraw the status line before & after each & every one. Better handling of such situations is needed.
- Possible solution: Split the select-loop into two tasks in a multi-threaded runtime. Task one uses a select-loop to receive ticks & subprocess events, and then it sends them through a channel to task two. Task two calls
Receiver::recv().awaitin a loop, and each time this future completes, it clears the status line, processes the event, and then loops overReceiver::try_recv()— processing any more events received in quick succession — until it returnsEmpty, and only after that is the status line redrawn.
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is neededperformanceEfficient use of time and spaceEfficient use of time and spaceunder considerationDev has not yet decided whether or how to implementDev has not yet decided whether or how to implement