aboutsummaryrefslogtreecommitdiffstats
path: root/community/firefox/rust_audio-thread-priority.patch
blob: e3c64ddbbe1e0b9ceb129d2e96caa5ab698cae0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
     })
 }