помогите разобраться с epoll/read? пишу на низком уровне, потому что планирую переписать код позже на cpp. проблема такая. приходит событие EPOLLIN от epoll_wait на чтение из дескриптора (stdout запущенного в фоне процесса)
my $pid_in = open(my $pin, "-|", $$prgs[0]) or die "Can't start in: $!";
читаю из дескриптора по событию
$bytes = read ($pin, $data, $BLOCKSIZE);
но вызов блокируется в ожидании чего-то. собственно вопрос почему он останавливается и что ему нужно? может он хочет считать $BLOCKSIZE байт из потока, а их там не хватает?