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:
committed by
Henrik Friedrichsen
parent
6d32f3d1f8
commit
ae090b6073
@@ -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.
|
||||
|
||||
10
src/main.rs
10
src/main.rs
@@ -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();
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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};
|
||||
|
||||
Reference in New Issue
Block a user