1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-12 02:39:03 +00:00

Previously, process_mainloop() assumed that there can occur only one event for l_nsock_loop(). This is obviously wrong. This caused that some lua threads wakeups (when multiple events happend for one nsock_loop) were delayed. They were handled but way after real events happened. This patch changes the handing of events. Now we execute every lua thread which is in running_scripts(). I hope that every thread will be scheduled in nsock and removed from running_scripts and added to waiting_scripts.

This commit is contained in:
majek04
2008-02-27 00:56:19 +00:00
parent 5ca15a1dab
commit caf8008940

View File

@@ -286,9 +286,7 @@ int process_mainloop(lua_State* l) {
} }
if(running_scripts.begin() == running_scripts.end()) while(running_scripts.begin() != running_scripts.end()){
continue;
current = *(running_scripts.begin()); current = *(running_scripts.begin());
if (current.rr->host->timedOut(&now)) if (current.rr->host->timedOut(&now))
@@ -335,6 +333,7 @@ int process_mainloop(lua_State* l) {
) )
SCRIPT_ENGINE_TRY(process_finalize(l, current.registry_idx)); SCRIPT_ENGINE_TRY(process_finalize(l, current.registry_idx));
} }
} // while
} }
progress.endTask(NULL, NULL); progress.endTask(NULL, NULL);