From 3cc400a9d60eba98cd4f62046664f927796fa6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sun, 22 Oct 2023 21:02:41 +0200 Subject: [PATCH] core: add number of processes in command `/sys waitpid` --- ChangeLog.adoc | 1 + po/cs.po | 8 +++++++- po/de.po | 8 +++++++- po/es.po | 8 +++++++- po/fr.po | 10 ++++++++-- po/hu.po | 8 +++++++- po/it.po | 8 +++++++- po/ja.po | 8 +++++++- po/pl.po | 8 +++++++- po/pt.po | 8 +++++++- po/pt_BR.po | 8 +++++++- po/ru.po | 8 +++++++- po/sr.po | 8 +++++++- po/tr.po | 8 +++++++- po/weechat.pot | 8 +++++++- src/core/wee-command.c | 24 ++++++++++++++++-------- src/core/wee-sys.c | 7 +++++-- src/core/wee-sys.h | 2 +- src/plugins/xfer/xfer-network.c | 2 +- 19 files changed, 123 insertions(+), 27 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index a4865a1e5..71c02f5cb 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -15,6 +15,7 @@ For a list of important changes that require manual actions, please look at rele New features:: + * core: add number of processes in command `/sys waitpid` * core, alias, trigger: allow wildcard in commands `/bar`, `/item`, `/proxy`, `/alias` and `/trigger` (issue #1956) * irc: add option irc.look.ignore_tag_messages (issue #989) diff --git a/po/cs.po b/po/cs.po index dc681553d..9c0610918 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:09+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -3114,6 +3114,9 @@ msgstr "" msgid "system actions" msgstr "seznam konfiguračních možností" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3137,6 +3140,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/de.po b/po/de.po index 85091612d..d8bd79406 100644 --- a/po/de.po +++ b/po/de.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:09+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -3274,6 +3274,9 @@ msgstr "" msgid "system actions" msgstr "Systemaktionen" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3302,6 +3305,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + msgid "toggle value of a config option" msgstr "den Wert einer Konfigurationsoption umschalten" diff --git a/po/es.po b/po/es.po index a13ed065b..7c5a85f04 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:09+0200\n" "Last-Translator: Santiago Forero \n" "Language-Team: weechat-dev \n" @@ -3217,6 +3217,9 @@ msgstr "" msgid "system actions" msgstr "lista de opciones" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3240,6 +3243,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/fr.po b/po/fr.po index 81041fe83..a6a66bc92 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" -"PO-Revision-Date: 2023-10-20 13:09+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" +"PO-Revision-Date: 2023-10-20 21:02+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -3355,6 +3355,9 @@ msgstr "" msgid "system actions" msgstr "actions système" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "get rlimit|rusage || suspend || waitpid " + msgid "raw[get]: display system info" msgstr "raw[get] : afficher des informations système" @@ -3383,6 +3386,9 @@ msgstr "" "raw[waitpid] : prendre connaissance des processus fils qui sont terminés " "(pour éviter les processus \"zombies\")" +msgid "number: number of processes to clean" +msgstr "nombre : nombre de processus à nettoyer" + msgid "toggle value of a config option" msgstr "basculer la valeur d'une option de configuration" diff --git a/po/hu.po b/po/hu.po index dfc174c24..a36e753bc 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:09+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -2974,6 +2974,9 @@ msgstr "" msgid "system actions" msgstr "konfigurációs paraméterek beállítása" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -2995,6 +2998,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy msgid "toggle value of a config option" msgstr "Nem található az opció\n" diff --git a/po/it.po b/po/it.po index 1dd0e5a41..6e43ac0ab 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:10+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -3107,6 +3107,9 @@ msgstr "" msgid "system actions" msgstr "elenco delle opzioni" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3133,6 +3136,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/ja.po b/po/ja.po index f8f18b4f3..dace59d66 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:10+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3241,6 +3244,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/pl.po b/po/pl.po index 89f938932..2230abf42 100644 --- a/po/pl.po +++ b/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:10+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish \n" @@ -3311,6 +3311,9 @@ msgstr "" msgid "system actions" msgstr "opcje fset" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3338,6 +3341,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + msgid "toggle value of a config option" msgstr "przełącza wartość opcji konfiguracyjnej" diff --git a/po/pt.po b/po/pt.po index db299d514..68fd9d4d4 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:10+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -3217,6 +3217,9 @@ msgstr "" msgid "system actions" msgstr "lista de opções" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3243,6 +3246,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/pt_BR.po b/po/pt_BR.po index f7af79fe0..ec2d90976 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:11+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -3136,6 +3136,9 @@ msgstr "" msgid "system actions" msgstr "lista de opções" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3159,6 +3162,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy #| msgid "values for a configuration option" msgid "toggle value of a config option" diff --git a/po/ru.po b/po/ru.po index 212152f74..f56b09e87 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:11+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -2997,6 +2997,9 @@ msgstr "" msgid "system actions" msgstr "настроить параметры конфигурации" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3018,6 +3021,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + #, fuzzy msgid "toggle value of a config option" msgstr "Не найден параметр\n" diff --git a/po/sr.po b/po/sr.po index 57eea813a..569a87ad0 100644 --- a/po/sr.po +++ b/po/sr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:11+0200\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -3237,6 +3237,9 @@ msgstr "" msgid "system actions" msgstr "системске акције" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3265,6 +3268,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + msgid "toggle value of a config option" msgstr "пребацује вредност опције конфигурације" diff --git a/po/tr.po b/po/tr.po index e8bc0159e..208416224 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2023-10-20 13:11+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -3249,6 +3249,9 @@ msgstr "" msgid "system actions" msgstr "fset seçenekleri" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -3276,6 +3279,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + msgid "toggle value of a config option" msgstr "bir yapılandırma seçeneğinin değerini aç/kapat" diff --git a/po/weechat.pot b/po/weechat.pot index 9c066ad57..688f02ea9 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-10-20 11:17+0200\n" +"POT-Creation-Date: 2023-10-20 21:02+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -2786,6 +2786,9 @@ msgstr "" msgid "system actions" msgstr "" +msgid "get rlimit|rusage || suspend || waitpid " +msgstr "" + msgid "raw[get]: display system info" msgstr "" @@ -2807,6 +2810,9 @@ msgid "" "\"zombie\" processes)" msgstr "" +msgid "number: number of processes to clean" +msgstr "" + msgid "toggle value of a config option" msgstr "" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index b777f6b51..f15390afa 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -6723,6 +6723,9 @@ COMMAND_CALLBACK(set) COMMAND_CALLBACK(sys) { + long value; + char *error; + /* make C compiler happy */ (void) pointer; (void) data; @@ -6732,8 +6735,7 @@ COMMAND_CALLBACK(sys) if (string_strcmp (argv[1], "get") == 0) { - COMMAND_MIN_ARGS(2, "get"); - + COMMAND_MIN_ARGS(3, "get"); if (string_strcmp (argv[2], "rlimit") == 0) sys_display_rlimit (); else if (string_strcmp (argv[2], "rusage") == 0) @@ -6751,7 +6753,12 @@ COMMAND_CALLBACK(sys) if (string_strcmp (argv[1], "waitpid") == 0) { - sys_waitpid (); + COMMAND_MIN_ARGS(3, "waitpid"); + error = NULL; + value = strtol (argv[2], &error, 10); + if (!error || error[0]) + COMMAND_ERROR; + sys_waitpid ((int)value); return WEECHAT_RC_OK; } @@ -9094,9 +9101,9 @@ command_init () hook_command ( NULL, "sys", N_("system actions"), - "get rlimit|rusage" - " || suspend" - " || waitpid", + N_("get rlimit|rusage" + " || suspend" + " || waitpid "), CMD_ARGS_DESC( N_("raw[get]: display system info"), N_("raw[rlimit]: display resource limits " @@ -9105,10 +9112,11 @@ command_init () N_("raw[suspend]: suspend WeeChat and go back to the shell, by sending " "signal SIGTSTP to the WeeChat process") , N_("raw[waitpid]: acknowledge the end of children processes " - "(to prevent \"zombie\" processes)")), + "(to prevent \"zombie\" processes)"), + N_("number: number of processes to clean")), "get rlimit|rusage" " || suspend" - " || waitpid", + " || waitpid 1|10|100|1000", &command_sys, NULL, NULL); hook_command ( NULL, "toggle", diff --git a/src/core/wee-sys.c b/src/core/wee-sys.c index 7560b80aa..0a6fd8ec6 100644 --- a/src/core/wee-sys.c +++ b/src/core/wee-sys.c @@ -349,13 +349,16 @@ sys_display_rusage () */ void -sys_waitpid () +sys_waitpid (int number_processes) { int i; + if (number_processes < 1) + return; + /* acknowledge the end of up to 42 forked processes */ i = 0; - while ((i < 42) && (waitpid (-1, NULL, WNOHANG) > 0)) + while ((i < number_processes) && (waitpid (-1, NULL, WNOHANG) > 0)) { i++; } diff --git a/src/core/wee-sys.h b/src/core/wee-sys.h index eb4e7bcb9..d264d5f20 100644 --- a/src/core/wee-sys.h +++ b/src/core/wee-sys.h @@ -31,6 +31,6 @@ struct t_rlimit_resource extern void sys_setrlimit (); extern void sys_display_rlimit (); extern void sys_display_rusage (); -extern void sys_waitpid (); +extern void sys_waitpid (int number_processes); #endif /* WEECHAT_SYS_H */ diff --git a/src/plugins/xfer/xfer-network.c b/src/plugins/xfer/xfer-network.c index 3c7b63338..9eeabf904 100644 --- a/src/plugins/xfer/xfer-network.c +++ b/src/plugins/xfer/xfer-network.c @@ -484,7 +484,7 @@ xfer_network_child_kill (struct t_xfer *xfer) { kill (xfer->child_pid, SIGKILL); weechat_command (weechat_buffer_search_main (), - "/mute /wait 100ms /sys waitpid"); + "/mute /wait 100ms /sys waitpid 10"); xfer->child_pid = 0; }