Zebra/zebrad/src
Henry de Valence 4fcb550aa6 Fix a deadlock in TokioComponent.
The components are accessed by a lock on application state.  When some command
calls block_on to enter an async context, it obtained a write lock on the
entire application state.  This meant that if the application state were
accessed later in an async context, a deadlock would occur.  Instead the
TokioComponent holds an Option<Runtime> now, so that before calling block_on,
the caller can .take() the runtime and release the lock.  Since we only ever
enter an async context once, it's not a problem that the component is then
missing its runtime, as once we are inside of a task we can access the runtime.
2020-01-15 12:06:31 -08:00
..
bin/zebrad Create workspace skeleton based on design.md 2019-08-29 14:46:54 -07:00
commands Fix a deadlock in TokioComponent. 2020-01-15 12:06:31 -08:00
components Fix a deadlock in TokioComponent. 2020-01-15 12:06:31 -08:00
application.rs Fix a deadlock in TokioComponent. 2020-01-15 12:06:31 -08:00
commands.rs Remove autogenerated Abscissa doc comments 2019-11-12 22:39:47 -05:00
components.rs Tracing endpoint (#3) 2019-09-09 13:05:42 -07:00
config.rs Upgrade to Abscissa v0.5 2020-01-15 12:06:31 -08:00
error.rs Upgrade to Abscissa v0.5 2020-01-15 12:06:31 -08:00
lib.rs Upgrade to Abscissa v0.5 2020-01-15 12:06:31 -08:00
prelude.rs Fix a deadlock in TokioComponent. 2020-01-15 12:06:31 -08:00