diff --git a/Cargo.lock b/Cargo.lock index e0fd54008d..c8a3033238 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,24 +72,10 @@ dependencies = [ "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", ] -[[package]] -name = "audio_thread_priority" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", -] - [[package]] name = "audioipc" version = "0.2.4" dependencies = [ - "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", @@ -117,7 +103,6 @@ dependencies = [ name = "audioipc-client" version = "0.4.0" dependencies = [ - "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", "audioipc 0.2.4", "cubeb-backend 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", @@ -130,7 +115,6 @@ dependencies = [ name = "audioipc-server" version = "0.2.3" dependencies = [ - "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", "audioipc 0.2.4", "cubeb-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -837,15 +821,6 @@ dependencies = [ "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "dbus" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", - "libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "deflate" version = "0.7.19" @@ -1219,7 +1194,6 @@ name = "gkrust-shared" version = "0.1.0" dependencies = [ "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", "audioipc-client 0.4.0", "audioipc-server 0.2.3", "authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1559,14 +1533,6 @@ name = "libc" version = "0.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "libdbus-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libloading" version = "0.5.0" @@ -3811,7 +3777,6 @@ dependencies = [ "checksum atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)" = "197b2d259505d11c92d266e1784f01cc935eb764d2f54e16aedf4e5085197871" "checksum authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ec149e5d5d4caa2c9ead53a8ce1ea9c4204c388c65bf3b96c2d1dc0fcf4aeb66" "checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875" "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" @@ -3872,7 +3837,6 @@ dependencies = [ "checksum darling 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe629a532efad5526454efb0700f86d5ad7ff001acb37e431c8bf017a432a8e" "checksum darling_core 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ee54512bec54b41cf2337a22ddfadb53c7d4c738494dc2a186d7b037ad683b85" "checksum darling_macro 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cd3e432e52c0810b72898296a69d66b1d78d1517dff6cde7a130557a55a62c1" -"checksum dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e1b39f3f6aa3d4a1522c4f0f9f1e9e9167bd93740a8690874caa7cf8ce47d7" "checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" "checksum derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871" "checksum devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d009f166c0d9e9f9909dc751630b3a6411ab7f85a153d32d01deb364ffe52a7" @@ -3931,7 +3895,6 @@ dependencies = [ "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d44e80633f007889c7eff624b709ab43c92d708caad982295768a7b13ca3b5eb" -"checksum libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "18cb88963258d00f4962205dbb5933d82780d9962c8c8a064b651d2ad7189210" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" "checksum libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe" "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp index 393fb53c02..15ddd2cf70 100644 --- a/dom/ipc/ContentChild.cpp +++ b/dom/ipc/ContentChild.cpp @@ -107,9 +107,7 @@ #include "nsIStringBundle.h" #include "nsIWorkerDebuggerManager.h" #include "nsGeolocation.h" -#include "audio_thread_priority.h" #include "nsIConsoleService.h" -#include "audio_thread_priority.h" #if !defined(XP_WIN) # include "mozilla/Omnijar.h" @@ -1782,9 +1780,6 @@ mozilla::ipc::IPCResult ContentChild::RecvSetProcessSandbox( } else { // Pre-start audio before sandboxing; see bug 1443612. if (Preferences::GetBool("media.cubeb.sandbox")) { - if (atp_set_real_time_limit(0, 48000)) { - NS_WARNING("could not set real-time limit at process startup"); - } InstallSoftRealTimeLimitHandler(); } else { Unused << CubebUtils::GetCubebContext(); diff --git a/dom/media/GraphRunner.cpp b/dom/media/GraphRunner.cpp index 8ff3391f4e..7a97faae76 100644 --- a/dom/media/GraphRunner.cpp +++ b/dom/media/GraphRunner.cpp @@ -13,7 +13,6 @@ #include "nsISupportsImpl.h" #include "prthread.h" #include "Tracing.h" -#include "audio_thread_priority.h" namespace mozilla { @@ -93,9 +92,6 @@ bool GraphRunner::OneIteration(GraphTime aStateEnd) { void GraphRunner::Run() { PR_SetCurrentThreadName("GraphRunner"); - atp_handle* handle = - atp_promote_current_thread_to_real_time(0, mGraph->GraphRate()); - MonitorAutoLock lock(mMonitor); while (true) { while (mThreadState == ThreadState::Wait) { @@ -111,10 +107,6 @@ void GraphRunner::Run() { mMonitor.Notify(); } - if (handle) { - atp_demote_current_thread_from_real_time(handle); - } - dom::WorkletThread::DeleteCycleCollectedJSContext(); } diff --git a/dom/media/UnderrunHandlerLinux.cpp b/dom/media/UnderrunHandlerLinux.cpp index af5c84538e..23bf97a31f 100644 --- a/dom/media/UnderrunHandlerLinux.cpp +++ b/dom/media/UnderrunHandlerLinux.cpp @@ -9,7 +9,6 @@ #include #include -#include "audio_thread_priority.h" namespace mozilla { @@ -57,20 +56,6 @@ void InstallSoftRealTimeLimitHandler() { } void DemoteThreadFromRealTime() { - atp_thread_info* info = atp_get_current_thread_info(); - if (!info) { - NS_WARNING("Could not get current thread info when demoting thread."); - return; - } - int rv = atp_demote_thread_from_real_time(info); - if (rv) { - NS_WARNING("Could not demote thread from real-time."); - return; - } - rv = atp_free_thread_info(info); - if (rv) { - NS_WARNING("Could not free atp_thread_info struct"); - } gRealtimeLimitReached = false; } diff --git a/dom/media/moz.build b/dom/media/moz.build index 716c6a2322..840465f04a 100644 --- a/dom/media/moz.build +++ b/dom/media/moz.build @@ -101,7 +101,6 @@ XPIDL_SOURCES += [ XPIDL_MODULE = 'dom_media' EXPORTS += [ - '../../third_party/rust/audio_thread_priority/audio_thread_priority.h', 'ADTSDecoder.h', 'ADTSDemuxer.h', 'AsyncLogger.h', diff --git a/media/audioipc/audioipc/Cargo.toml b/media/audioipc/audioipc/Cargo.toml index 286e16789b..c34775cea1 100644 --- a/media/audioipc/audioipc/Cargo.toml +++ b/media/audioipc/audioipc/Cargo.toml @@ -19,7 +19,6 @@ serde = "1.*.*" serde_derive = "1.*.*" tokio = "0.1" tokio-io = "0.1" -audio_thread_priority = "0.20.2" [target.'cfg(unix)'.dependencies] iovec = "0.1" diff --git a/media/audioipc/audioipc/src/messages.rs b/media/audioipc/audioipc/src/messages.rs index 9a2ca4d59e..612e8d5050 100644 --- a/media/audioipc/audioipc/src/messages.rs +++ b/media/audioipc/audioipc/src/messages.rs @@ -9,8 +9,6 @@ use cubeb::{self, ffi}; use std::ffi::{CStr, CString}; use std::os::raw::{c_char, c_int, c_uint}; use std::ptr; -#[cfg(target_os = "linux")] -use audio_thread_priority::RtPriorityThreadInfo; #[derive(Debug, Serialize, Deserialize)] pub struct Device { @@ -209,9 +207,6 @@ pub enum ServerMessage { StreamSetVolume(usize, f32), StreamGetCurrentDevice(usize), StreamRegisterDeviceChangeCallback(usize, bool), - - #[cfg(target_os = "linux")] - PromoteThreadToRealTime([u8; std::mem::size_of::()]), } // Server -> Client messages. diff --git a/media/audioipc/client/Cargo.toml b/media/audioipc/client/Cargo.toml index 866cde7e98..eaf9a62cc7 100644 --- a/media/audioipc/client/Cargo.toml +++ b/media/audioipc/client/Cargo.toml @@ -9,7 +9,6 @@ description = "Cubeb Backend for talking to remote cubeb server." edition = "2018" [dependencies] -audio_thread_priority = "0.20.2" audioipc = { path="../audioipc" } cubeb-backend = "0.6.0" futures = { version="0.1.18", default-features=false, features=["use_std"] } diff --git a/media/audioipc/client/src/context.rs b/media/audioipc/client/src/context.rs index c20e281248..e13dbc2d8d 100644 --- a/media/audioipc/client/src/context.rs +++ b/media/audioipc/client/src/context.rs @@ -6,10 +6,6 @@ use crate::{assert_not_in_callback, run_in_callback}; use crate::stream; use crate::{ClientStream, G_SERVER_FD, CPUPOOL_INIT_PARAMS}; -#[cfg(not(target_os = "linux"))] -use audio_thread_priority::promote_current_thread_to_real_time; -#[cfg(target_os = "linux")] -use audio_thread_priority::get_current_thread_info; use audioipc::codec::LengthDelimitedCodec; use audioipc::frame::{framed, Framed}; use audioipc::platformhandle_passing::{framed_with_platformhandles, FramedWithPlatformHandles}; @@ -91,34 +87,6 @@ fn open_server_stream() -> io::Result { } } -#[cfg(target_os = "linux")] -fn promote_thread(rpc: &rpc::ClientProxy) -{ - match get_current_thread_info() { - Ok(info) => { - let bytes = info.serialize(); - // Don't wait for the response, this is on the callback thread, which must not block. - rpc.call(ServerMessage::PromoteThreadToRealTime(bytes)); - } - Err(_) => { - warn!("Could not remotely promote thread to RT."); - } - } -} - -#[cfg(not(target_os = "linux"))] -fn promote_thread(_rpc: &rpc::ClientProxy) -{ - match promote_current_thread_to_real_time(0, 48000) { - Ok(_) => { - info!("Audio thread promoted to real-time."); - } - Err(_) => { - warn!("Could not promote thread to real-time."); - } - } -} - fn register_thread(callback: Option) { if let Some(func) = callback { let thr = thread::current(); @@ -127,12 +95,6 @@ fn register_thread(callback: Option, - callback: Option) { - promote_thread(rpc); - register_thread(callback); -} - #[derive(Default)] struct DeviceCollectionCallback { cb: ffi::cubeb_device_collection_changed_callback, @@ -235,7 +197,6 @@ impl ContextOps for ClientContext { let cpu_pool = futures_cpupool::Builder::new() .name_prefix("AudioIPC") - .after_start(move || promote_and_register_thread(&rpc2, params.thread_create_callback)) .pool_size(params.pool_size) .stack_size(params.stack_size) .create(); diff --git a/media/audioipc/server/Cargo.toml b/media/audioipc/server/Cargo.toml index 8a628e7090..31f23cbe78 100644 --- a/media/audioipc/server/Cargo.toml +++ b/media/audioipc/server/Cargo.toml @@ -9,7 +9,6 @@ description = "Remote cubeb server" edition = "2018" [dependencies] -audio_thread_priority = "0.20.2" audioipc = { path = "../audioipc" } cubeb-core = "0.6.0" futures = "0.1.18" diff --git a/media/audioipc/server/src/lib.rs b/media/audioipc/server/src/lib.rs index 63b373fe8f..75f8b99123 100644 --- a/media/audioipc/server/src/lib.rs +++ b/media/audioipc/server/src/lib.rs @@ -11,7 +11,6 @@ extern crate log; #[macro_use] extern crate lazy_static; -use audio_thread_priority::promote_current_thread_to_real_time; use audioipc::core; use audioipc::platformhandle_passing::framed_with_platformhandles; use audioipc::rpc; @@ -64,12 +63,6 @@ fn run() -> Result { trace!("Starting up cubeb audio server event loop thread..."); let callback_thread = core::spawn_thread("AudioIPC Callback RPC", || { - match promote_current_thread_to_real_time(0, 48000) { - Ok(_) => {} - Err(_) => { - debug!("Failed to promote audio callback thread to real-time."); - } - } trace!("Starting up cubeb audio callback event loop thread..."); Ok(()) }) diff --git a/media/audioipc/server/src/server.rs b/media/audioipc/server/src/server.rs index 3d98c8fed2..35fff91130 100644 --- a/media/audioipc/server/src/server.rs +++ b/media/audioipc/server/src/server.rs @@ -30,8 +30,6 @@ use std::rc::Rc; use std::{panic, slice}; use tokio::reactor; use tokio::runtime::current_thread; -#[cfg(target_os = "linux")] -use audio_thread_priority::{RtPriorityThreadInfo, promote_thread_to_real_time}; use crate::errors::*; @@ -521,21 +519,6 @@ impl CubebServer { ) .unwrap_or_else(error) }, - - #[cfg(target_os = "linux")] - ServerMessage::PromoteThreadToRealTime(thread_info) => { - let info = RtPriorityThreadInfo::deserialize(thread_info); - match promote_thread_to_real_time(info, 0, 48000) { - Ok(_) => { - info!("Promotion of content process thread to real-time OK"); - } - Err(_) => { - warn!("Promotion of content process thread to real-time error"); - } - } - ClientMessage::ThreadPromoted - }, - }; trace!("process_msg: req={:?}, resp={:?}", msg, resp); diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml index 190503e2ab..dd7f0a5234 100644 --- a/toolkit/library/rust/shared/Cargo.toml +++ b/toolkit/library/rust/shared/Cargo.toml @@ -40,7 +40,6 @@ bitsdownload = { path = "../../../components/bitsdownload", optional = true } storage = { path = "../../../../storage/rust" } bookmark_sync = { path = "../../../components/places/bookmark_sync", optional = true } shift_or_euc_c = "0.1.0" -audio_thread_priority = "0.20.2" mdns_service = { path="../../../../media/mtransport/mdns_service", optional = true } [build-dependencies] diff --git a/toolkit/library/rust/shared/lib.rs b/toolkit/library/rust/shared/lib.rs index f76f53436d..318f904703 100644 --- a/toolkit/library/rust/shared/lib.rs +++ b/toolkit/library/rust/shared/lib.rs @@ -48,8 +48,6 @@ extern crate shift_or_euc_c; extern crate arrayvec; -extern crate audio_thread_priority; - #[cfg(feature = "webrtc")] extern crate mdns_service;