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 {
+ ¶m) } < 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
})
}
|