taskset: don't use zero PID in messages
The pid 0 is technically correct, but very confusing for end users. Use getpid() in the messages. Addresses: https://github.com/karelzak/util-linux/issues/413 Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
6153d2977d
commit
6433fcad71
|
@ -98,7 +98,17 @@ static void print_affinity(struct taskset *ts, int isnew)
|
||||||
if (!str)
|
if (!str)
|
||||||
errx(EXIT_FAILURE, _("internal error: conversion from cpuset to string failed"));
|
errx(EXIT_FAILURE, _("internal error: conversion from cpuset to string failed"));
|
||||||
|
|
||||||
printf(msg, ts->pid, str);
|
printf(msg, ts->pid ? ts->pid : getpid(), str);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __attribute__((__noreturn__)) err_affinity(pid_t pid, int set)
|
||||||
|
{
|
||||||
|
char *msg;
|
||||||
|
|
||||||
|
msg = set ? _("failed to set pid %d's affinity") :
|
||||||
|
_("failed to get pid %d's affinity");
|
||||||
|
|
||||||
|
err(EXIT_FAILURE, msg, pid ? pid : getpid());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_taskset(struct taskset *ts, size_t setsize, cpu_set_t *set)
|
static void do_taskset(struct taskset *ts, size_t setsize, cpu_set_t *set)
|
||||||
|
@ -106,8 +116,7 @@ static void do_taskset(struct taskset *ts, size_t setsize, cpu_set_t *set)
|
||||||
/* read the current mask */
|
/* read the current mask */
|
||||||
if (ts->pid) {
|
if (ts->pid) {
|
||||||
if (sched_getaffinity(ts->pid, ts->setsize, ts->set) < 0)
|
if (sched_getaffinity(ts->pid, ts->setsize, ts->set) < 0)
|
||||||
err(EXIT_FAILURE, _("failed to get pid %d's affinity"),
|
err_affinity(ts->pid, 1);
|
||||||
ts->pid);
|
|
||||||
print_affinity(ts, FALSE);
|
print_affinity(ts, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,14 +125,12 @@ static void do_taskset(struct taskset *ts, size_t setsize, cpu_set_t *set)
|
||||||
|
|
||||||
/* set new mask */
|
/* set new mask */
|
||||||
if (sched_setaffinity(ts->pid, setsize, set) < 0)
|
if (sched_setaffinity(ts->pid, setsize, set) < 0)
|
||||||
err(EXIT_FAILURE, _("failed to set pid %d's affinity"),
|
err_affinity(ts->pid, 1);
|
||||||
ts->pid);
|
|
||||||
|
|
||||||
/* re-read the current mask */
|
/* re-read the current mask */
|
||||||
if (ts->pid) {
|
if (ts->pid) {
|
||||||
if (sched_getaffinity(ts->pid, ts->setsize, ts->set) < 0)
|
if (sched_getaffinity(ts->pid, ts->setsize, ts->set) < 0)
|
||||||
err(EXIT_FAILURE, _("failed to get pid %d's affinity"),
|
err_affinity(ts->pid, 0);
|
||||||
ts->pid);
|
|
||||||
print_affinity(ts, TRUE);
|
print_affinity(ts, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue