@@ -26,18 +26,14 @@ std::unordered_map<uint64, ScriptEngine*> timeTaskMap;
2626#define TIMETASK_CATCH (TASK_TYPE ) \
2727 catch (const Exception& e) { \
2828 EngineScope scope (data.engine ); \
29- lse::LegacyScriptEngine::getLogger ().error (" Error occurred in {}" , TASK_TYPE); \
30- ll::error_utils::printException (e, lse::LegacyScriptEngine::getLogger ()); \
31- lse::LegacyScriptEngine::getLogger ().error ( \
32- " In Plugin: " + getEngineData (data.engine )->pluginName \
33- ); \
29+ lse::LegacyScriptEngine::getLogger ().error (" Error occurred in {}" , TASK_TYPE); \
30+ ll::error_utils::printException (e, lse::LegacyScriptEngine::getLogger ()); \
31+ lse::LegacyScriptEngine::getLogger ().error (" In Plugin: " + getEngineData (data.engine )->pluginName ); \
3432 } \
3533 catch (...) { \
36- lse::LegacyScriptEngine::getLogger ().error (" Error occurred in {}" , TASK_TYPE); \
37- ll::error_utils::printCurrentException (lse::LegacyScriptEngine::getLogger ()); \
38- lse::LegacyScriptEngine::getLogger ().error ( \
39- " In Plugin: " + getEngineData (data.engine )->pluginName \
40- ); \
34+ lse::LegacyScriptEngine::getLogger ().error (" Error occurred in {}" , TASK_TYPE); \
35+ ll::error_utils::printCurrentException (lse::LegacyScriptEngine::getLogger ()); \
36+ lse::LegacyScriptEngine::getLogger ().error (" In Plugin: " + getEngineData (data.engine )->pluginName ); \
4137 }
4238
4339int NewTimeout (Local<Function> func, std::vector<Local<Value>> paras, int timeout) {
@@ -55,12 +51,14 @@ int NewTimeout(Local<Function> func, std::vector<Local<Value>> paras, int timeou
5551 co_return ;
5652 }
5753
58- if ((ll::getGamingStatus () == ll::GamingStatus::Stopping) || !EngineManager::isValid (data.engine )) {
54+ std::shared_ptr<ScriptEngine> engine;
55+ if (engine = EngineManager::checkAndGet (data.engine );
56+ !engine || ll::getGamingStatus () == ll::GamingStatus::Stopping) {
5957 ClearTimeTask (tid);
6058 co_return ;
6159 }
6260
63- EngineScope scope (data. engine );
61+ EngineScope scope (engine. get () );
6462 if (!data.func .isEmpty ()) {
6563 std::vector<Local<Value>> args;
6664 for (auto & para : data.paras ) {
@@ -93,12 +91,14 @@ int NewTimeout(Local<String> func, int timeout) {
9391 co_return ;
9492 }
9593
96- if ((ll::getGamingStatus () == ll::GamingStatus::Stopping) || !EngineManager::isValid (data.engine )) {
94+ std::shared_ptr<ScriptEngine> engine;
95+ if (engine = EngineManager::checkAndGet (data.engine );
96+ !engine || ll::getGamingStatus () == ll::GamingStatus::Stopping) {
9797 ClearTimeTask (tid);
9898 co_return ;
9999 }
100100
101- EngineScope scope (data. engine );
101+ EngineScope scope (engine. get () );
102102 if (!data.code .isEmpty ()) {
103103 auto code = data.code .get ().toString ();
104104 data.engine ->eval (code);
@@ -129,12 +129,14 @@ int NewInterval(Local<Function> func, std::vector<Local<Value>> paras, int timeo
129129 co_return ;
130130 }
131131
132- if ((ll::getGamingStatus () == ll::GamingStatus::Stopping) || !EngineManager::isValid (data.engine )) {
132+ std::shared_ptr<ScriptEngine> engine;
133+ if (engine = EngineManager::checkAndGet (data.engine );
134+ !engine || ll::getGamingStatus () == ll::GamingStatus::Stopping) {
133135 ClearTimeTask (tid);
134136 co_return ;
135137 }
136138
137- EngineScope scope (data. engine );
139+ EngineScope scope (engine. get () );
138140
139141 if (!data.func .isEmpty ()) {
140142 std::vector<Local<Value>> args;
@@ -168,12 +170,14 @@ int NewInterval(Local<String> func, int timeout) {
168170 if (!CheckTimeTask (tid)) {
169171 co_return ;
170172 }
171- if ((ll::getGamingStatus () == ll::GamingStatus::Stopping) || !EngineManager::isValid (data.engine )) {
173+ std::shared_ptr<ScriptEngine> engine;
174+ if (engine = EngineManager::checkAndGet (data.engine );
175+ !engine || ll::getGamingStatus () == ll::GamingStatus::Stopping) {
172176 ClearTimeTask (tid);
173177 co_return ;
174178 }
175179
176- EngineScope scope (data. engine );
180+ EngineScope scope (engine. get () );
177181 if (!data.code .isEmpty ()) {
178182 data.engine ->eval (data.code .get ().toString ());
179183 }
@@ -189,13 +193,13 @@ int NewInterval(Local<String> func, int timeout) {
189193
190194bool CheckTimeTask (int const & id) {
191195 std::lock_guard lock (locker);
192- return timeTaskMap.find (id) != timeTaskMap. end ( );
196+ return timeTaskMap.contains (id);
193197}
194198
195199bool ClearTimeTask (int const & id) {
196200 try {
197201 std::lock_guard lock (locker);
198- if (timeTaskMap.find (id) != timeTaskMap. end ( )) {
202+ if (timeTaskMap.contains (id)) {
199203 timeTaskMap.erase (id);
200204 }
201205 } catch (...) {
0 commit comments