LINUX.ORG.RU

История изменений

Исправление Toxo2, (текущая версия) :

простым решением будет

Потому что «сложным решением» пока вообще даже фантазия не помогает, что можно сделать.

На текущий момент так:

В Ubuntu, Mint, ArchLinux - все с ядром 5.4 если запускать так:

SHELL=/bin/dash mc
то наблюдается эта самая задержка. (В Arch этот dash еще установить надо до этого, конечно)

В Debian с ядром 5.4 из бэкпортов - задержки нет.

Задержка эта живёт в коде /mc/src/subshell/common.c

   /* we wait up to 10 seconds if fail_on_error, forever otherwise */
    wtime.tv_sec = 10;
    wtime.tv_usec = 0;
    wptr = fail_on_error ? &wtime : NULL;
в вызове
        if (select (maxfdp + 1, &read_set, NULL, NULL, wptr) == -1)

Почему этот select работает нормально в Debian, но зависает и отваливается по таймауту в остальных при subshell=DASH - никаких мыслей нет.

Надо звать настоящих программистов за разъяснениями.

Исходная версия Toxo2, :

простым решением будет

Потому что «сложным решением» пока вообще даже фантазия не помогает, что можно сделать.

На текущий момент так:

В Ubuntu, Mint, ArchLinux - все с ядром 5.4 если запускать так:

SHELL=/bin/dash mc
то наблюдается эта самая задержка. (В Arch этот dash еще установить надо до этого, конечно)

В Debian с ядром 5.4 из бэкпортов - задержки нет.

Задержка это живёт в коде /mc/src/subshell/common.c

   /* we wait up to 10 seconds if fail_on_error, forever otherwise */
    wtime.tv_sec = 10;
    wtime.tv_usec = 0;
    wptr = fail_on_error ? &wtime : NULL;
в вызове
        if (select (maxfdp + 1, &read_set, NULL, NULL, wptr) == -1)

Почему этот select работает нормально в Debian, но зависает и отваливается по таймауту в остальных при subshell=DASH - никаких мыслей нет.

Надо звать настоящих программистов за разъяснениями.