refactor: move async runtime to application module

To have a clear distinction between code dealing with OS process
characteristics and code of ncspot itself, it makes sense to move the
async runtime together with ncspot as it doesn't have anything to do
with the OS process.
This commit is contained in:
Thomas Frans
2023-05-23 23:24:29 +02:00
committed by Henrik Friedrichsen
parent 6d32f3d1f8
commit ae090b6073
5 changed files with 14 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
use crate::{command, ipc, mpris, queue, spotify, ASYNC_RUNTIME};
use crate::{command, ipc, mpris, queue, spotify};
use std::fs;
use std::path::PathBuf;
use std::str::FromStr;
@@ -67,6 +67,14 @@ pub struct UserDataInner {
pub cmd: CommandManager,
}
lazy_static!(
/// The global Tokio runtime for running asynchronous tasks.
pub static ref ASYNC_RUNTIME: tokio::runtime::Runtime = tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap();
);
/// The representation of an ncspot application.
pub struct Application {
/// The Spotify library, which is obtained from the Spotify API using rspotify.

View File

@@ -59,14 +59,8 @@ fn register_backtrace_panic_handler() {
}));
}
lazy_static!(
/// The global Tokio runtime for running asynchronous tasks.
static ref ASYNC_RUNTIME: tokio::runtime::Runtime = tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap();
);
// Functionality related to the operating system process itself is implemented here.
// Functionality related to ncspot goes into `Application`.
fn main() -> Result<(), String> {
register_backtrace_panic_handler();

View File

@@ -8,6 +8,7 @@ use tokio_stream::StreamExt;
use zbus::zvariant::{ObjectPath, Value};
use zbus::{dbus_interface, ConnectionBuilder};
use crate::application::ASYNC_RUNTIME;
use crate::library::Library;
use crate::model::album::Album;
use crate::model::episode::Episode;
@@ -19,7 +20,6 @@ use crate::queue::RepeatSetting;
use crate::spotify::UriType;
use crate::spotify_url::SpotifyUrl;
use crate::traits::ListItem;
use crate::ASYNC_RUNTIME;
use crate::{
events::EventManager,
queue::Queue,

View File

@@ -23,12 +23,12 @@ use std::str::FromStr;
use std::sync::{Arc, RwLock};
use std::time::{Duration, SystemTime};
use crate::application::ASYNC_RUNTIME;
use crate::config;
use crate::events::{Event, EventManager};
use crate::model::playable::Playable;
use crate::spotify_api::WebApi;
use crate::spotify_worker::{Worker, WorkerCommand};
use crate::ASYNC_RUNTIME;
pub const VOLUME_PERCENT: u16 = ((u16::max_value() as f64) * 1.0 / 100.0) as u16;

View File

@@ -1,3 +1,4 @@
use crate::application::ASYNC_RUNTIME;
use crate::model::album::Album;
use crate::model::artist::Artist;
use crate::model::category::Category;
@@ -7,7 +8,6 @@ use crate::model::playlist::Playlist;
use crate::model::track::Track;
use crate::spotify_worker::WorkerCommand;
use crate::ui::pagination::{ApiPage, ApiResult};
use crate::ASYNC_RUNTIME;
use chrono::{DateTime, Duration as ChronoDuration, Utc};
use futures::channel::oneshot;
use log::{debug, error, info};