[pyar] subprocess.Popen con timeout

claudio canepa ccanepacc en gmail.com
Mie Mayo 9 04:48:16 ART 2012


2012/5/9 david weil <tenuki en gmail.com>

>
> No leí aún como lo estás haciendo. Pero como también tuve algunos
> problemas con esas cosas, te comento otras que se pueden hacer:
>
> 1. lo que decís del select es un motivo de porqué no funciona en windows.
> 2. la alternativa "windows-way" al select sobre files:
> waitforsingleobject(.., handle, .. timeout).
> 3. para eso necesitas dos cosas:
> -crear el file con / para acceso asincrónico:
>
> http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx
> -> buscá overlapped i/o, entonces se usa: ctypes.
> -tener el handle del file (no me acuerdo si con myfile.fileno te lo
> devuelve)
> -creo que despues de que tenes createfile() y waitforsingleobject(),
> el resto de las cosas las podés hacer con os.fdread() de a 1
> caracter.. pero creo que también hay una forma (que no me acuedo
> ahora) de crear un objeto file de python a partir de un file
> descriptor/handle y usar file.readlines() etc..
>
> A pesar de todo, recuerdo también, haber tenido, en algún momento, el
> problema que mencionas de que aparentemente los ultimos
> len(outputstream)%4kb no me llegaban.
> Pero ahora no estoy seguro de si fue antes de haber hecho todo esto o no..
> :-o
>
> Y también encontré algunos problemas horribles, con tools mismas del
> "sistema operativo", que chequean que el handle de donde están tomando
> el input sea el número 3 (sí sí) y sinó tienen comportamiento
> errático. Para ellas, una solución que encontramos es hacer
> createprocess() e indicar que cree una nueva consola.. etc..
>
> Avisa si vas a probar estas cosas..
> Saludos,
> dave
>

Si, atacando el problema de fondo de que comunicate usa blocking io deberia
quedar mas redondo.

Sin embargo, no quiero gastar demasiado tiempo en hacer la perfecta rueda
redonda; con una ligeramente cuadrada como la que tengo me podria arreglar
(en windows me sirve, si no explota en linux - mac puedo seguir con otras
cosas)

O sea, el problema es interesante, pero es solo una funcion, preferiria
seguir adelante (si hay confirmacion de que anda en linux-mac)  (guiño,
guiño: testeen porfi)

Igual no es que no aprecie estrategias alternativas, me quedan para cuando
tenga tiempo de pulir

claudio
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120509/64304e80/attachment.html>


More information about the pyar mailing list