[pyar] Loop de espera

Claudio Freire klaussfreire en gmail.com
Vie Dic 3 16:57:55 ART 2010


2010/12/3 Sebastian Bassi <sebastian.bassi en globant.com>

> 2010/12/2 Luis A. Garcia <lagsistemas en gmail.com>:
> > Lo hice de esta forma y de vez en cuando se muere sola, nunca supe
> porque,
> > tengo que estar atento y verificar que sigue activa.
>
> Debe ser por lo que dijo fisa, que te come el procesador. El SO lo
> debe ver como una app. "desbocada" y la mata (al menos cuando una app
> se come toda la RAM el SO la mata, supongo que con el procesador
> pasará lo mismo).
>

Pucha, tengo que controlarme con el double-posting.

El otro tema es que si python está configurado con FAST_LOOPS (que a veces
lo está), eso resulta en 0 ticks por bucle, y 0 ticks por bucle significa
que el thread principal no libera nunca el GIL, y no permite que los otros
threads corran.

Del código de python (ceval.c):

        PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
        case JUMP_ABSOLUTE:
            JUMPTO(oparg);
#if FAST_LOOPS
            /* Enabling this path speeds-up all while and for-loops by
bypassing
                            the per-loop checks for signals.  By default,
this should be turned-off
                            because it prevents detection of a control-break
in tight loops like
                            "while 1: pass".  Compile with this option
turned-on when you need
                            the speed-up and do not need break checking
inside tight loops (ones
                            that contain only instructions ending with goto
fast_next_opcode,
                            PREDICTx or DISPATCH_RETURNx).
                        */
            goto fast_next_opcode;
#else
            CONTINUE;
#endif
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101203/9734df4c/attachment.html>


More information about the pyar mailing list