diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-17 10:23:48 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-17 10:24:01 +0400 |
| commit | f068157f557d1c7256278d41f1bd42a13867777f (patch) | |
| tree | b62ee2f0a102689b402f70e77e545f8b98d3074e | |
| parent | 6703d5ce7214b5308c3803183536c4fa92773b8e (diff) | |
| download | niri-f068157f557d1c7256278d41f1bd42a13867777f.tar.gz niri-f068157f557d1c7256278d41f1bd42a13867777f.tar.bz2 niri-f068157f557d1c7256278d41f1bd42a13867777f.zip | |
Add a calloop futures executor
| -rw-r--r-- | Cargo.lock | 3 | ||||
| -rw-r--r-- | Cargo.toml | 1 | ||||
| -rw-r--r-- | src/niri.rs | 6 |
3 files changed, 10 insertions, 0 deletions
@@ -474,7 +474,9 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" dependencies = [ + "async-task", "bitflags 2.4.1", + "futures-io", "log", "polling 3.3.1", "rustix 0.38.28", @@ -1700,6 +1702,7 @@ dependencies = [ "async-channel", "async-io 1.13.0", "bitflags 2.4.1", + "calloop", "clap", "directories", "git-version", @@ -39,6 +39,7 @@ arrayvec = "0.7.4" async-channel = { version = "2.1.1", optional = true } async-io = { version = "1.13.0", optional = true } bitflags = "2.4.1" +calloop = { version = "0.12.3", features = ["executor", "futures-io"] } clap = { version = "4.4.13", features = ["derive"] } directories = "5.0.1" git-version = "0.3.9" diff --git a/src/niri.rs b/src/niri.rs index 082a68eb..f22612ed 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -10,6 +10,7 @@ use std::{env, mem, thread}; use _server_decoration::server::org_kde_kwin_server_decoration_manager::Mode as KdeDecorationsMode; use anyhow::Context; +use calloop::futures::Scheduler; use niri_config::{Config, TrackLayout}; use smithay::backend::allocator::Fourcc; use smithay::backend::renderer::element::solid::{SolidColorBuffer, SolidColorRenderElement}; @@ -112,6 +113,7 @@ pub struct Niri { pub config: Rc<RefCell<Config>>, pub event_loop: LoopHandle<'static, State>, + pub scheduler: Scheduler<()>, pub stop_signal: LoopSignal, pub display_handle: DisplayHandle, pub socket_name: OsString, @@ -742,6 +744,9 @@ impl Niri { ) -> Self { let _span = tracy_client::span!("Niri::new"); + let (executor, scheduler) = calloop::futures::executor().unwrap(); + event_loop.insert_source(executor, |_, _, _| ()).unwrap(); + let display_handle = display.handle(); let config_ = config.borrow(); @@ -884,6 +889,7 @@ impl Niri { config, event_loop, + scheduler, stop_signal, socket_name, display_handle, |
