mirror of
https://gitlab.gnome.org/World/Authenticator.git
synced 2025-03-04 00:34:40 +01:00
search_provider: Block receivers until ready
This commit is contained in:
parent
9e3ceba6a8
commit
25e125b685
3 changed files with 9 additions and 5 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -154,6 +154,7 @@ dependencies = [
|
|||
"diesel_migrations",
|
||||
"favicon-scrapper",
|
||||
"futures-channel",
|
||||
"futures-executor",
|
||||
"futures-util",
|
||||
"gettext-rs",
|
||||
"gst-plugin-gtk4",
|
||||
|
|
|
@ -12,8 +12,9 @@ data-encoding = "2.3"
|
|||
diesel = {version = "2.0", features = ["sqlite", "r2d2"]}
|
||||
diesel_migrations = {version = "2.0", features = ["sqlite"]}
|
||||
favicon-scrapper = {path = "./favicon-scrapper"}
|
||||
futures-util = "0.3"
|
||||
futures-channel = "0.3"
|
||||
futures-executor = "0.3"
|
||||
futures-util = "0.3"
|
||||
gettext-rs = {version = "0.7", features = ["gettext-system"]}
|
||||
gst = {package = "gstreamer", version = "0.20"}
|
||||
gst4gtk = {package = "gst-plugin-gtk4", version = "0.10", features = ["wayland", "x11egl", "x11glx"]}
|
||||
|
|
|
@ -42,25 +42,27 @@ impl SearchProviderImpl for SearchProvider {
|
|||
}
|
||||
|
||||
fn initial_result_set(&self, terms: &[String]) -> Vec<ResultID> {
|
||||
let (sender, mut receiver) = futures_channel::oneshot::channel();
|
||||
let (sender, receiver) = futures_channel::oneshot::channel();
|
||||
let _ = self
|
||||
.sender
|
||||
.unbounded_send(SearchProviderAction::InitialResultSet(
|
||||
terms.to_owned(),
|
||||
sender,
|
||||
));
|
||||
receiver.try_recv().unwrap().unwrap()
|
||||
let fut = async { receiver.await.unwrap() };
|
||||
futures_executor::block_on(fut)
|
||||
}
|
||||
|
||||
fn result_metas(&self, identifiers: &[ResultID]) -> Vec<ResultMeta> {
|
||||
let (sender, mut receiver) = futures_channel::oneshot::channel();
|
||||
let (sender, receiver) = futures_channel::oneshot::channel();
|
||||
let _ = self
|
||||
.sender
|
||||
.unbounded_send(SearchProviderAction::ResultMetas(
|
||||
identifiers.to_owned(),
|
||||
sender,
|
||||
));
|
||||
receiver.try_recv().unwrap().unwrap()
|
||||
let fut = async { receiver.await.unwrap() };
|
||||
futures_executor::block_on(fut)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue