[devel] Виснет conftest с alarm и sleep

Aleksey Cheusov vle на gmx.net
Вт Май 28 14:33:49 MSK 2024


Ниже приведен фрагмент из autoconf-овского conftest.c
При запуске из bulk build-a виснет на 50 дней.
Ни у кого нет идей, почему такое может происходить?
Воспроизвести локально не получается.
Для чистоты эксперимента воспроизвел переменные окружения и ulimit -- не
воспроизводится.

kernel --  5.4.28-std-def-alt1
libc -- glibc-2.32-alt5.p10.2


#include <errno.h>
#include <unistd.h>
#include <signal.h>
static void
handle_alarm (int sig)
{
  if (sig != SIGALRM)
    _exit (2);
}

int
main (void)
{

    /* Failure to compile this test due to missing alarm is okay,
       since all such platforms (mingw) also lack sleep.  */
    unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days.  */
    unsigned int remaining;
    signal (SIGALRM, handle_alarm);
    alarm (1);
    remaining = sleep (pentecost);
    if (remaining > pentecost)
      return 3;
    if (remaining <= pentecost - 10)
      return 4;
    return 0;

  ;
  return 0;
}


Подробная информация о списке рассылки Devel