Em alguns casos, ao delegar trabalho a um processo externo, é útil definir um tempo limite no comando para impedir que o Emacs seja interrompido indefinidamente.
Infelizmente, o seguinte não funciona.
(with-timeout (1 nil)
(call-process "/usr/bin/bash" nil t nil "-c" "sleep 10"))
O mesmo vale para shell-command
.
Existe uma maneira de definir um tempo limite para esses processos síncronos?
Ou seja, quero que o processo seja finalizado automaticamente se não terminar dentro de um certo número de segundos. Isso é possível?
call-process
acima está configurando a saída a ser impressa no buffer atual (eu obtenho o mesmo efeito se eu passar em um buffer de saída diferente). É isso que você quer dizer?
call-process
fontes, mas agora estou começando a suspeitar que não há como matá-lo com o tempo limite.
with-timeout
, mas eu useikill-process
edelete-process
.