File otp_src_R16B03-1-erts-erl_process.patch of Package erlang
diff -Ndurp otp_src_R16B03-1/erts/emulator/beam/erl_process.c otp_src_R16B03-1-erts-erl_process/erts/emulator/beam/erl_process.c
--- otp_src_R16B03-1/erts/emulator/beam/erl_process.c 2014-01-24 13:30:47.000000000 +0200
+++ otp_src_R16B03-1-erts-erl_process/erts/emulator/beam/erl_process.c 2015-02-14 22:21:24.894457892 +0200
@@ -4416,29 +4416,27 @@ int
erts_sched_set_wakeup_other_thresold(char *str)
{
#ifdef ERTS_SMP
- ErtsSchedWakeupOtherThreshold threshold;
if (sys_strcmp(str, "very_high") == 0)
- threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_VERY_HIGH;
+ wakeup_other.threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_VERY_HIGH;
else if (sys_strcmp(str, "high") == 0)
- threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_HIGH;
+ wakeup_other.threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_HIGH;
else if (sys_strcmp(str, "medium") == 0)
- threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_MEDIUM;
+ wakeup_other.threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_MEDIUM;
else if (sys_strcmp(str, "low") == 0)
- threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_LOW;
+ wakeup_other.threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_LOW;
else if (sys_strcmp(str, "very_low") == 0)
- threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_VERY_LOW;
+ wakeup_other.threshold = ERTS_SCHED_WAKEUP_OTHER_THRESHOLD_VERY_LOW;
else
return EINVAL;
- wakeup_other.threshold = threshold;
set_wakeup_other_data();
return 0;
#else
- if (sys_strcmp(str, "very_high") == 0 || sys_strcmp(str, "high") == 0 ||
- sys_strcmp(str, "medium") == 0 || sys_strcmp(str, "low") == 0 ||
- sys_strcmp(str, "very_low") == 0) {
- return 0;
- }
- return EINVAL;
+ return sys_strcmp(str, "very_high") &&
+ sys_strcmp(str, "high") &&
+ sys_strcmp(str, "medium") &&
+ sys_strcmp(str, "low") &&
+ sys_strcmp(str, "very_low")
+ ? EINVAL : 0;
#endif
}
@@ -4446,20 +4444,15 @@ int
erts_sched_set_wakeup_other_type(char *str)
{
#ifdef ERTS_SMP
- ErtsSchedWakeupOtherType type;
if (sys_strcmp(str, "default") == 0)
- type = ERTS_SCHED_WAKEUP_OTHER_TYPE_DEFAULT;
+ wakeup_other.type = ERTS_SCHED_WAKEUP_OTHER_TYPE_DEFAULT;
else if (sys_strcmp(str, "legacy") == 0)
- type = ERTS_SCHED_WAKEUP_OTHER_TYPE_LEGACY;
+ wakeup_other.type = ERTS_SCHED_WAKEUP_OTHER_TYPE_LEGACY;
else
return EINVAL;
- wakeup_other.type = type;
return 0;
#else
- if (sys_strcmp(str, "default") == 0 || sys_strcmp(str, "legacy") == 0) {
- return 0;
- }
- return EINVAL;
+ return sys_strcmp(str, "default") && sys_strcmp(str, "legacy") ? EINVAL : 0;
#endif
}