threads: fix unitialized members in sched_param

Building with gcc 8.2 against musl libc, which apparently has more attributes
available in its sched_param. The following warnings were produced:

    warning: missing initializer for member 'sched_param::sched_ss_low_priority' [-Wmissing-field-initializers]
    warning: missing initializer for member 'sched_param::sched_ss_repl_period' [-Wmissing-field-initializers]
    warning: missing initializer for member 'sched_param::sched_ss_init_budget' [-Wmissing-field-initializers]
    warning: missing initializer for member 'sched_param::sched_ss_max_repl' [-Wmissing-field-initializers]

Since the current thread may have interesting non-zero values for these fields,
we want to be sure to only change the intended one. Query and modify the
current sched_param rather than starting from a zeroed one.
This commit is contained in:
Cory Fields 2018-09-27 18:08:39 -04:00 committed by fanquake
parent 2753285be7
commit 89282379ba
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -1293,7 +1293,7 @@ fs::path AbsPathForConfigVal(const fs::path& path, bool net_specific)
int ScheduleBatchPriority() int ScheduleBatchPriority()
{ {
#ifdef SCHED_BATCH #ifdef SCHED_BATCH
const static sched_param param{0}; const static sched_param param{};
if (int ret = pthread_setschedparam(pthread_self(), SCHED_BATCH, &param)) { if (int ret = pthread_setschedparam(pthread_self(), SCHED_BATCH, &param)) {
LogPrintf("Failed to pthread_setschedparam: %s\n", strerror(errno)); LogPrintf("Failed to pthread_setschedparam: %s\n", strerror(errno));
return ret; return ret;