py.lib
py.lib/Alarm.py
+ Работа с LDAP
| awgur@13 | 1 #!/usr/bin/python |
| awgur@13 | 2 # -*- coding: utf-8 -*- |
| awgur@13 | 3 |
| awgur@13 | 4 from signal import SIGALRM, alarm, signal |
| awgur@13 | 5 |
| awgur@13 | 6 class AlarmTimeout(Exception): pass |
| awgur@13 | 7 |
| awgur@13 | 8 def _handler(sig, frame): |
| awgur@13 | 9 raise AlarmTimeout('Operation timeout') |
| awgur@13 | 10 |
| awgur@13 | 11 class MkAlarm(object): |
| awgur@13 | 12 def __init__(self, timeout): |
| awgur@13 | 13 signal(SIGALRM, _handler) |
| awgur@13 | 14 alarm(timeout) |
| awgur@13 | 15 |
| awgur@13 | 16 def __enter__(self): |
| awgur@13 | 17 pass |
| awgur@13 | 18 |
| awgur@13 | 19 def __exit__(self, eType, eObj, tb): |
| awgur@13 | 20 if eObj == None: |
| awgur@13 | 21 alarm(0) |
| awgur@13 | 22 |
| awgur@13 | 23 def __del__(self): |
| awgur@13 | 24 alarm(0) |
| awgur@13 | 25 |