Skip to content

Commit c8bf388

Browse files
committed
Gracefully handle the lack of a session bus
1 parent bac1e56 commit c8bf388

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

platforms/unix/src/context.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ impl AppContext {
115115
}
116116

117117
pub(crate) struct ActivationContext {
118-
_task: Task<()>,
118+
_task: Option<Task<()>>,
119119
adapters: Vec<(usize, LazyAdapter)>,
120120
}
121121

@@ -125,14 +125,15 @@ impl ActivationContext {
125125
async fn get_or_init<'a>() -> AsyncMutexGuard<'a, ActivationContext> {
126126
ACTIVATION_CONTEXT
127127
.get_or_init(async {
128-
let session_bus = Connection::session().await.unwrap();
129-
let session_bus_copy = session_bus.clone();
130-
let task = session_bus.executor().spawn(
131-
async move {
132-
listen(session_bus_copy).await.unwrap();
133-
},
134-
"accesskit_task",
135-
);
128+
let task = Connection::session().await.ok().map(|session_bus| {
129+
let session_bus_copy = session_bus.clone();
130+
session_bus.executor().spawn(
131+
async move {
132+
listen(session_bus_copy).await.unwrap();
133+
},
134+
"accesskit_task",
135+
)
136+
});
136137
Arc::new(AsyncMutex::new(ActivationContext {
137138
_task: task,
138139
adapters: Vec::new(),

0 commit comments

Comments
 (0)