diff --git a/src/subsonic.rs b/src/subsonic.rs index b79137e..c8ec249 100644 --- a/src/subsonic.rs +++ b/src/subsonic.rs @@ -153,8 +153,7 @@ impl Client { &self, request: reqwest_middleware::RequestBuilder, ) -> Result { - // FIXME: is an entire channel per request overkill? maybe pool them? - let (sender, receiver) = async_channel::bounded(1); + let (sender, receiver) = tokio::sync::oneshot::channel(); // let tokio take care of the request + further json parsing // this is because reqwest doesn't like the glib main loop @@ -198,11 +197,10 @@ impl Client { // note that in general its fine not to cancel the tokio task when its corresponding // mainloop task is dropped, since eg for song thumbnails there's already a semaphore // limiting concurrent requests - let _ = sender.send(perform(future.await).await).await; + let _ = sender.send(perform(future.await).await); }); receiver - .recv() .await .map_err(|_| Error::OtherError("failed to receive response from tokio loop"))? }