Wez Furlong
aad493ab2a
simplify promise crate
...
Implement Future and Promise in terms of a bounded channel of size 1.
2020-10-05 08:50:29 -07:00
Wez Furlong
5eb4d32004
upgrade misc deps, notably, async-task
2020-10-05 00:06:01 -07:00
Wez Furlong
3de4851aed
fixup tls mux sessions
...
This adopts smol more broadly, but not yet completely.
2020-10-04 21:47:12 -07:00
Wez Furlong
e8be716cb3
clean up mux server startup
...
kindof a lot going on in this commit, unintentionally:
* Need the lua context set to be moved into the config crate
otherwise configs cannot be parsed by the server and we end
up with the default configs
* Make the server use smol for async io
* Drop the use of the daemonize crate, which I had forked anyway.
Just inline our own tighter daemonize module
* Improve daemon spawning synchronization, however, it still needs
work for windows to avoid blocking forever where we don't do
daemonizing.
2020-10-04 09:39:28 -07:00
Wez Furlong
1d9678706c
promise: add tokio_spawn helper
...
This starts up the tokio runtime on a secondary thread
and spawns a future into it.
2020-01-20 07:55:51 -08:00
Wez Furlong
27d58ae371
promise: remove Executors
2020-01-16 23:29:42 -08:00
Wez Furlong
aeb91ff238
migrate more things over to the new spawn stuff
2020-01-16 10:31:53 -08:00
Wez Furlong
9ec4694d89
migrate some more code to the newer spawn mechanism
2020-01-16 09:15:07 -08:00
Wez Furlong
75eb16bec4
move spawn_task into a new promise::spawn module
2020-01-16 03:50:48 -08:00
Wez Furlong
9a2c7a1485
failure -> anyhow + thiserror
2019-12-14 21:43:05 -08:00
Wez Furlong
14fbf43485
promise: more properly implement Future::poll
...
The future won't ever complete if you don't connect the waker
from the context!
Prove this out by making the windowops functions async and
verifying them in the async example
2019-11-23 08:16:12 -08:00
Wez Furlong
61fe33fbf6
remove unused rayon dep from the promise crate
2019-10-28 14:31:10 -07:00
Wez Furlong
0579a52f77
promise: clippy
2019-10-07 07:22:34 -07:00
Wez Furlong
6047229bf2
potentially make our promise/future crate await compatible
2019-09-15 19:09:08 -07:00
Wez Furlong
cab062118b
promise: split execute out to BasicExecutor
...
This makes it easier to implement just the scheduling portion
without imposing other restrictions on the executor type.
2019-09-15 19:09:08 -07:00
Wez Furlong
d67d4aab57
avoid marking a tab as dead when we might reconnect it
2019-06-29 16:31:13 -07:00
Wez Furlong
55caafb0c4
more properly fix cond notify on Promise::drop
2019-06-16 21:04:53 -07:00
Wez Furlong
99d6c12532
poll the client tab asynchronously
...
Restructure the poll routine so that we don't block the gui thread
while we wait for the render data to be returned from the server.
2019-06-14 20:30:45 -07:00
Wez Furlong
5ebad9e63a
dyn everywhere
2019-06-08 21:28:11 -07:00
Wez Furlong
038100922a
clippy
2019-05-26 12:49:10 -07:00
Wez Furlong
e1a1530d22
remove boxfnonce: now require rust 1.35+
...
Rust can now naturally deal with with these constructs, so drop the
external crate.
2019-05-26 09:14:20 -07:00
Wez Furlong
1f9d95d57f
tweak executor trait for compat with x11
2019-03-04 23:13:37 +00:00
Wez Furlong
2bfc4fe401
fix warning
2019-03-04 22:44:09 +00:00
Wez Furlong
4b4be6ac21
remove futurecore
2019-03-04 22:32:59 +00:00
Wez Furlong
1d37e44b62
move promise to its own crate
2019-03-04 15:38:56 +00:00