diff --git a/src/lib.rs b/src/lib.rs
index 416fedd..a3975eb 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -41,7 +41,7 @@ pub trait RunData {
}
fn created_server(&self) {}
fn connected_server(&self) {}
- fn xwayland_ready(&self, _display: String) {}
+ fn xwayland_ready(&self, _display: String, _pid: u32) {}
}
pub fn main(data: impl RunData) -> Option<()> {
@@ -75,6 +75,8 @@ pub fn main(data: impl RunData) -> Option<()> {
.spawn()
.unwrap();
+ let xwl_pid = xwayland.id();
+
let (mut finish_tx, mut finish_rx) = UnixStream::pair().unwrap();
let stderr = xwayland.stderr.take().unwrap();
std::thread::spawn(move || {
@@ -151,7 +153,7 @@ pub fn main(data: impl RunData) -> Option<()> {
display.pop();
display.insert(0, ':');
info!("Connected to Xwayland on {display}");
- data.xwayland_ready(display);
+ data.xwayland_ready(display, xwl_pid);
xstate.server_state_setup(&mut server_state);
#[cfg(feature = "systemd")]
diff --git a/tests/integration.rs b/tests/integration.rs
index c0c85a2..ab0a279 100644
--- a/tests/integration.rs
+++ b/tests/integration.rs
@@ -1,4 +1,5 @@
use rustix::event::{poll, PollFd, PollFlags};
+use rustix::process::{Pid, Signal, WaitOptions};
use std::mem::ManuallyDrop;
use std::os::fd::{AsRawFd, BorrowedFd};
use std::os::unix::net::UnixStream;
@@ -20,6 +21,7 @@ struct TestDataInner {
server_connected: AtomicBool,
display: Mutex