Re: [PATCH] chrt: Allow optional priority for non‑prio policies without --pid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jul 19, 2025 at 12:34:39AM +0530, Madadi Vineeth Reddy wrote:
> diff --git a/schedutils/chrt.c b/schedutils/chrt.c
> index 10ba7fbf6..44b9b9e20 100644
> --- a/schedutils/chrt.c
> +++ b/schedutils/chrt.c
> @@ -395,6 +395,18 @@ static void set_sched(struct chrt_ctl *ctl)
>  	ctl->altered = 1;
>  }
>  
> +static bool is_number(const char *s)
> +{
> +	if (!s || *s == '\0')
> +		return false;
> +
> +	for (const char *p = s; *p; p++) {
> +		if (!isdigit((unsigned char)*p))
> +			return false;
> +	}
> +	return true;
> +}

It seems you can replace this function with isdigit_string() from  
include/strutils.h.

> +
>  int main(int argc, char **argv)
>  {
>  	struct chrt_ctl _ctl = { .pid = -1, .policy = SCHED_RR }, *ctl = &_ctl;
> @@ -503,7 +515,7 @@ int main(int argc, char **argv)
>  		}
>  	}
>  
> -	if (argc - optind < (ctl->pid == 0 ? 1 : 2)) {
> +	if (argc - optind < 1) {
>  		warnx(_("too few arguments"));
>  		errtryhelp(EXIT_FAILURE);
>  	}
> @@ -527,7 +539,10 @@ int main(int argc, char **argv)
>  	if (ctl->verbose)
>  		show_sched_info(ctl);
>  
> -	if (argc - optind > 1) {
> +	bool have_prio = need_prio ||
> +		(ctl->pid == -1 ? (optind < argc && is_number(argv[optind])) : (argc - optind > 1));
> +
> +	if (have_prio) {
>  		errno = 0;
>  		ctl->priority = strtos32_or_err(argv[optind], _("invalid priority argument"));
>  	} else
> @@ -568,9 +583,19 @@ int main(int argc, char **argv)
>  		show_sched_info(ctl);
>  
>  	if (!ctl->pid) {
> -		argv += optind + 1;
> -		if (strcmp(argv[0], "--") == 0)
> +		argv += optind;
> +
> +		if (need_prio)
> +			argv++;
> +		else if (argv[0] && is_number(argv[0]))
> +			argv++;
> +
> +		if (argv[0] && strcmp(argv[0], "--") == 0)
>  			argv++;
> +
> +		if (!argv[0])
> +			errx(EXIT_FAILURE, "Missing command to execute");

You need to use _() for translation, ideally with string already used in  
other tools. For example, _("no command specified").

Thanks!
    Karel

-- 
 Karel Zak  <kzak@xxxxxxxxxx>
 http://karelzak.blogspot.com





[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux