X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d91f2da4c8737499c4f4b97508d12515e50994ce..71926516a90b5252f39271334760de686fb8c72f:/lib/base/ebase.cpp diff --git a/lib/base/ebase.cpp b/lib/base/ebase.cpp index 00ecb345..7a57d533 100644 --- a/lib/base/ebase.cpp +++ b/lib/base/ebase.cpp @@ -157,7 +157,7 @@ int eMainloop::processOneEvent(unsigned int user_timeout, PyObject **res, PyObje poll_timeout /= 1000; } - if ((user_timeout > 0) && (poll_timeout > user_timeout)) + if ((user_timeout > 0) && (poll_timeout > 0) && ((unsigned int)poll_timeout > user_timeout)) { poll_timeout = user_timeout; return_reason = 1; @@ -333,6 +333,13 @@ int eMainloop::runLoop() PyObject *eMainloop::poll(PyObject *timeout, PyObject *dict) { PyObject *res = 0; + + if (app_quit_now) + { + Py_INCREF(Py_None); + return Py_None; + } + int user_timeout = (timeout == Py_None) ? 0 : PyInt_AsLong(timeout); iterate(user_timeout, &res, dict);