Re: Stopping PEAK application on SIGINT
PJ Eby <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> Tue, 29 Sep 2015 17:27:27 -0400
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <CALeMXf4_gS0H3fObL8+W=uByoVUCTmO9yDvd2nHRvhRXKX8UjQ@mail.gmail.com> |
Which event loop are you using? Twisted, the PEAK default, or something else? The issue here appears to be that the eventLoop property of the MainLoop instance lacks a `signals()` method -- which would seem to mean it doesn't fully implement IEventLoop or is the wrong type of object to start with. On Tue, Sep 29, 2015 at 8:06 AM, Alexey Smishlayev <[email protected]> wrote: > Good day everyone! > I would like my PEAK application to stop on ^C or SIGINT. Currently, in that > case I get an output something like > >> 29.09.2015 14:56:48.179 [DEBUG] Connect.twisted Unexpected error in main >> loop. >> 29.09.2015 14:56:48.190 [ERROR] Connect.twisted Traceback (most recent >> call last): >> 29.09.2015 14:56:48.190 [ERROR] File >> "/Users/alexey/xtech2/tester/build/lib/ank/BBS/CommandBase.py", line 38, in >> run >> 29.09.2015 14:56:48.190 [ERROR] self.mainLoop.run() >> 29.09.2015 14:56:48.190 [ERROR] File >> "/Library/Python/2.7/site-packages/peak/running/scheduler.py", line 78, in >> run >> 29.09.2015 14:56:48.190 [ERROR] return >> self.eventLoop.runUntil(self.exitCode,True,idle=self.sleep)[0] >> 29.09.2015 14:56:48.190 [ERROR] File >> "/Library/Python/2.7/site-packages/peak/events/twisted_support.py", line >> 186, in runUntil >> 29.09.2015 14:56:48.190 [ERROR] self.reactor.run(False) >> 29.09.2015 14:56:48.190 [ERROR] File >> "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py", >> line 1192, in run >> 29.09.2015 14:56:48.190 [ERROR] self.mainLoop() >> 29.09.2015 14:56:48.190 [ERROR] --- <exception caught here> --- >> 29.09.2015 14:56:48.190 [ERROR] File >> "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py", >> line 1204, in mainLoop >> 29.09.2015 14:56:48.190 [ERROR] self.doIteration(t) >> 29.09.2015 14:56:48.190 [ERROR] File >> "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/selectreactor.py", >> line 105, in doSelect >> 29.09.2015 14:56:48.190 [ERROR] [], timeout) >> 29.09.2015 14:56:48.190 [ERROR] exceptions.KeyboardInterrupt: > > in the log file. In CommandBase.py attribute self.mainloop is defined as > >> from peak.api import binding >> from peak.running import commands, interfaces >> class CommandBase(commands.EventDriven): >> mainLoop = binding.Obtain(interfaces.IMainLoop) >> ... > > If I set "peak.running.mainLoop.stopOnSignals" in my project's .ini file to > anything else except empty tuple, on the application's startup I get the > following error (I tried "stopOnSignals = ('SIGINT',)") > >> Traceback (most recent call last): >> File "../ank/BBS/Assembler.py", line 370, in run >> _exitCode = _root.run() >> File "/Library/Python/2.7/site-packages/peak/running/commands.py", line >> 229, in run >> return self._run() or 0 >> File "/Library/Python/2.7/site-packages/peak/running/commands.py", line >> 509, in _run >> return self.invoke() >> File "/Users/alexey/xtech2/tester/build/lib/ank/BBS/CommandBase.py", >> line 38, in run >> self.mainLoop.run() >> File "/Library/Python/2.7/site-packages/peak/running/scheduler.py", line >> 66, in run >> handler = self.eventLoop.signals(*self.stopOnSignals) >> File "_once.pyx", line 112, in _once.BaseDescriptor.__get__ >> File "_once.pyx", line 100, in _once.__get__ >> File "/Library/Python/2.7/site-packages/peak/binding/components.py", >> line 682, in delegate >> return getattr(getattr(s,delegateAttr),a) >> File "_once.pyx", line 112, in _once.BaseDescriptor.__get__ >> File "_once.pyx", line 100, in _once.__get__ >> File "/Library/Python/2.7/site-packages/peak/binding/components.py", >> line 682, in delegate >> return getattr(getattr(s,delegateAttr),a) >> File "_once.pyx", line 88, in _once.BaseDescriptor.__get__ >> AttributeError: ('Recursive attempt to compute attribute', 'signals') > > How do I do everything correctly? > > > Best regards, > Alexey Smishlayev > > _______________________________________________ > PEAK mailing list > [email protected] > http://www.eby-sarna.com/mailman/listinfo/peak