Вызов исключения при работе paho

Почему не происходит вызов исключения для paho

def mqtt_sub_(domen, user, password, topic, version = '4.1'):#receive message v4.1
if version == '4.1':
    topic = topic+"/resp"
print (topic)
@timeout(5)
def start():
    try:
        msg = subscribe.simple(topic ,hostname=domen, auth = {'username':user,'password':password})
        text = msg.payload.decode().replace('\u0000','').replace('resp','')
        print (text)
        return (text)
    except TimeoutError:
        print ('error')
        text = 'error'
        return (text)
return start()

timeout.py

 from functools import wraps
import errno
import os
import signal

class TimeoutError(Exception):
    pass
"""timeout - signal exception module"""

def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
    def decorator(func):
        def _handle_timeout(signum, frame):
            raise TimeoutError(error_message)

        def wrapper(*args, **kwargs):
            signal.signal(signal.SIGALRM, _handle_timeout)
            signal.alarm(seconds)
            try:
                result = func(*args, **kwargs)
            finally:
                signal.alarm(0)
            return result

        return wraps(func)(wrapper)

    return decorator

Для обычных пользовательских функций это решение работает

 #!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys, time
sys.path.append('/usr/local/server/modules')
from timeout import timeout

@timeout(2)
def q():
    try:
        i=0
        while True:
            print(i)
            time.sleep(1)
            i+=1
    except:
        print('aa')

oot@php:/usr/local/server# ./testak.py 
0
1
aa

Ответы (0 шт):