def call_async(func):
@wraps(func)<EOL>def wrapper(self, *args, **kw):<EOL><INDENT>"""<STR_LIT>"""<EOL>def call():<EOL><INDENT>"""<STR_LIT>"""<EOL>try:<EOL><INDENT>func(self, *args, **kw)<EOL><DEDENT>except Exception:<EOL><INDENT>logger.exception(<EOL>"<STR_LIT>", func, args, kw<EOL>)<EOL><DEDENT><DEDENT>self.loop.call_soon_threadsafe(call)<EOL><DEDENT>return wrapper<EOL>
Decorates a function to be called async on the loop thread