diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-08-05 09:36:28 +0200 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-08-05 09:36:28 +0200 |
commit | e6e2b7afcc92cf0baecd83188e859af7a510da09 (patch) | |
tree | 257da3b2324c58a4458ff600c02682f214037a04 /src/LuaTask.cc | |
parent | b8aa9ea03b992e02ab8d362598b588e79b50bfd1 (diff) |
Don't crash a LuaTask on EAgain; let it thru. Also don't yield if you crashed.
Diffstat (limited to 'src/LuaTask.cc')
-rw-r--r-- | src/LuaTask.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/LuaTask.cc b/src/LuaTask.cc index e7d78ff..a549563 100644 --- a/src/LuaTask.cc +++ b/src/LuaTask.cc @@ -80,13 +80,15 @@ void Balau::LuaTask::Do() { else m_cell->run(L); } + catch (EAgain & e) { + } catch (GeneralException & e) { m_cell->m_exception = new GeneralException(e); } catch (...) { m_cell->setError(); } - if (L.yielded()) { + if (L.yielded() && !m_cell->m_exception) { yield(); continue; } |