Working with NSE threads, condition variables, and mutexes in NSE
The Nmap Scripting Engine offers finer control over script parallelism by implementing threads, condition variables, and mutexes. Each NSE script is normally executed inside a Lua coroutine or thread but it may yield additional worker threads if the programmer decides to do so.
This recipe will teach you how to deal with parallelism in NSE.
How to do it...
NSE threads are recommended for scripts that need to perform network operations in parallel. Let's see how to deal with parallelism in our scripts:
- To create a new NSE thread, use the function
new_thread()from the library
local co = stdnse.new_thread(worker_main_function, arg1, arg2, arg3, ...)
- To synchronize access to a ...