[python] zachyceni unixovych signalu

rajcze rajcze na gmail.com
Neděle Květen 20 22:12:48 CEST 2007


Ahoj,

je to tim, ze ve funkci handler nemenis globalni promennou quit, ale
jen promennou quit s lokalni platnosti.

Pokud chces zachovat takovouto strukturu, staci udelat nasledujici:

  def handler(signum, frame):
     global quit
     quit = True


Joza


On 5/20/07, Karel Šrot <karel.do.pekla.zajel na seznam.cz> wrote:
> Zdravim,
> mam dotaz ohledne zachytavani unixovych signalu. Nasledujici kod by mel
> skoncit program pri zachyceni SIGINT, ale nechce se mu. Evidentne neni
> vyhodnocovana podminka. Neni to zpusobeno nejakou optimalizaci? Vim, ze
> v C se daji nejake promenne oznacit, aby u nich nepouzival nektere
> optimalizace, protoze jeji hodnota se muze zmenit mimo cast programu.
> Dekuji za radu
> Karel
>
>
> #!/usr/bin/python
>
> import signal
>
>
> def handler(signum, frame):
>      quit = True
>      print 'signal handler called with signal', signum
>      print quit
>
>
> signal.signal(signal.SIGINT, handler)
>
> quit = False
>
> print 'running...'
>
> while not quit:
>      pass
>
> print 'quitting...'
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


-- 
Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.


Další informace o konferenci Python