aboutsummaryrefslogtreecommitdiffstats
path: root/community/firefox/rust_audio-thread-priority.patch
diff options
context:
space:
mode:
authorRasmus Thomsen <oss@cogitri.dev>2020-03-01 23:55:34 +0100
committerLeo <thinkabit.ukim@gmail.com>2020-03-02 01:39:20 -0300
commitb95a02111cbc18c810d706c9c522af20674d1f23 (patch)
tree6992bbad7e41f6e20588c13406aa02933e2521d9 /community/firefox/rust_audio-thread-priority.patch
parentde46d6ac7a77db3185628df176d9cef27d1b76ad (diff)
downloadaports-b95a02111cbc18c810d706c9c522af20674d1f23.tar.bz2
aports-b95a02111cbc18c810d706c9c522af20674d1f23.tar.xz
community/firefox: move from testing
Since we support community for stable releases this would also mean that we'll have to bump nss, nspr and firefox in stable releases, but I think this should be fine for the 6 months of support we offer.
Diffstat (limited to 'community/firefox/rust_audio-thread-priority.patch')
-rw-r--r--community/firefox/rust_audio-thread-priority.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/community/firefox/rust_audio-thread-priority.patch b/community/firefox/rust_audio-thread-priority.patch
new file mode 100644
index 0000000000..e3c64ddbbe
--- /dev/null
+++ b/community/firefox/rust_audio-thread-priority.patch
@@ -0,0 +1,39 @@
+backport of https://github.com/padenot/audio_thread_priority/commit/b5b86285d3c0cae2cb731730460f386ffa30cb03.patch
+avoids problems with serialization of RtPriorityThreadInfo in media/audioipc on musl
+
+--- a/third_party/rust/audio_thread_priority/src/rt_linux.rs 2019-12-02 13:24:01.000000000 +0100
++++ b/third_party/rust/audio_thread_priority/src/rt_linux.rs 2019-12-02 13:24:01.000000000 +0100
+@@ -31,9 +31,7 @@
+ /// process.
+ pthread_id: libc::pthread_t,
+ /// ...
+- policy: libc::c_int,
+- /// ...
+- param: libc::sched_param,
++ policy: libc::c_int
+ }
+
+ impl RtPriorityThreadInfoInternal {
+@@ -141,9 +139,11 @@
+ -> Result<(), ()> {
+ assert!(unsafe { libc::pthread_self() } == rt_priority_handle.thread_info.pthread_id);
+
++ let param = unsafe { std::mem::zeroed::<libc::sched_param>() };
++
+ if unsafe { libc::pthread_setschedparam(rt_priority_handle.thread_info.pthread_id,
+ rt_priority_handle.thread_info.policy,
+- &rt_priority_handle.thread_info.param) } < 0 {
++ &param) } < 0 {
+ error!("could not demote thread {}", OSError::last_os_error().raw_os_error().unwrap());
+ return Err(());
+ }
+@@ -187,8 +187,7 @@
+ pid,
+ thread_id,
+ pthread_id,
+- policy,
+- param
++ policy
+ })
+ }
+