Nmap Development mailing list archives
Re: [NSE] Thread-safety questions
From: Patrick Donnelly <batrick () batbytes com>
Date: Wed, 31 Jul 2013 03:21:44 -0400
Apologies for previous mail, hit send early. On Tue, Jul 30, 2013 at 8:27 PM, <nnposter () users sourceforge net> wrote:
1. Socket use across threads Recently I ran into an issue of nmap failing to return from socket:connect() so I posed a question to the mailing list about whether sockets can be used across threads. Patrick Donnelly answered that this is indeed prohibited. Could somebody please point out where it is documented? (I do try to RTFM but I have somehow missed it and I wonder if there are other similar constraints.)
I don't think it's documented anywhere. Libraries like the socket library (nse_nsock.cc) need to know the "owner" of a resource for socket locks. What it means to transfer ownership to another thread is an open question. I don't really feel it's worth answering. We can expand the documentation I suppose to be more clear about this.
2. Behavior of stdnse.new_thread() Given the collaborative threading model, is a new thread created with stdnse.new_thread() guaranteed not to start running until the parent thread explicitly or implicitly yields (through yield(),
A call to Lua's yield will never validly release control to NSE. NSE would not know how to resume the script.
sleep(), socket I/Os, mutexes, etc.)?
For the current implementation, the answer is yes. I don't see a reason why a guarantee needs to be made. No guarantee exists in POSIX threading (from which we draw many concepts).
If the answer "Yes, always", could again somebody please point out the relevant documentation? (Source code does not count ;-)
We can expand the documentation here too. Would you like to take a stab at it? :) -- Patrick Donnelly _______________________________________________ Sent through the dev mailing list http://nmap.org/mailman/listinfo/dev Archived at http://seclists.org/nmap-dev/
Current thread:
- [NSE] Thread-safety questions nnposter (Jul 30)
- Re: [NSE] Thread-safety questions Patrick Donnelly (Jul 31)
- Re: [NSE] Thread-safety questions Patrick Donnelly (Jul 31)
- Re: [NSE] Thread-safety questions nnposter (Jul 31)