-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
30 lines (22 loc) · 1.05 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- `reader` is too hard to use, even a single blocking I/O operation on anything other than the `Shutdown` implementor breaks it
- given that the point of `reader` is to *allow* (cancelable) I/O, this occurs too often to be practical
-> remove it?
- move `background`/`Worker` etc. into a `thread` module
- "isochronous" stream processing that replicates the input data pacing at the output while running
the computation pipelined on a thread pool
- add a hybrid channel similar to flume (except without the dependencies)
reactive value sketch
impl Value<T> {
pub fn new() -> Self { ... }
pub fn set(&self, value: T) { ... }
pub fn reader(&self) -> Reader<T> { ... }
pub fn reader_count(&self) -> usize { ... }
}
impl Reader<T> {
pub fn get(&self) -> Option<T> { ... }
pub fn next(&self) -> Option<T> { ... }
pub async fn wait(&self) -> T { ... }
pub fn block(&self) -> T { ... }
}
isochronous processor might be better as a `Stream` extension (`stream.pace()`?)
a better name relating to "wall clock time" might also be better