diff --git a/Changelog.md b/Changelog.md index 5b87d71..e8f3a6a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -12,6 +12,7 @@ - FIXED onInit not being called on hot-reload - FIXED incorrect timing calculation of Lua EventTimer loop - FIXED bug which caused hot-reload not to report syntax errors +- FIXED missing error messages on some event handler calls # v3.0.2 diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index a4e2d52..7ca54f7 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -59,19 +59,21 @@ void TLuaEngine::operator()() { RegisterThread("ResultCheckThread"); while (!Application::IsShuttingDown()) { std::unique_lock Lock(mResultsToCheckMutex); - mResultsToCheckCond.wait_for(Lock, std::chrono::milliseconds(20)); + beammp_tracef("Results to check: {}", mResultsToCheck.size()); if (!mResultsToCheck.empty()) { mResultsToCheck.remove_if([](const std::shared_ptr& Ptr) -> bool { if (Ptr->Ready) { - return true; - } else if (Ptr->Error) { - if (Ptr->ErrorMessage != BeamMPFnNotFoundError) { - beammp_lua_error(Ptr->Function + ": " + Ptr->ErrorMessage); + if (Ptr->Error) { + if (Ptr->ErrorMessage != BeamMPFnNotFoundError) { + beammp_lua_error(Ptr->Function + ": " + Ptr->ErrorMessage); + } } return true; } return false; }); + } else { + mResultsToCheckCond.wait_for(Lock, std::chrono::milliseconds(20)); } } }); @@ -161,7 +163,7 @@ void TLuaEngine::AddResultToCheck(const std::shared_ptr& Result) { mResultsToCheckCond.notify_one(); } -std::unordered_map /* handlers */> TLuaEngine::Debug_GetEventsForState(TLuaStateId StateId) { +std::unordered_map /* handlers */> TLuaEngine::Debug_GetEventsForState(TLuaStateId StateId) { std::unordered_map> Result; std::unique_lock Lock(mLuaEventsMutex); for (const auto& EventNameToEventMap : mLuaEvents) {