in reply to Re^4: Should I use threads? Perl/DHCP/Radius
in thread Should I use threads? Perl/DHCP/Radius
Looks for DHCPACK in logs.
Parses MAC from it.
Checks with a http server which responds with a pass/fail.
If http response is success, sends a RADIUS packet for Authentication.
Apart from this, I need to monitor MACs that have failed and also those that have passed continuously.
What I am worried about in my non-threaded model is that when several DHCPACKs come at the same time and one request takes a little longer than expected, it will block all the other MACS in queue => Hence threads to do the API and RADIUS checks.
As mentioned in my earlier post , pumping 10 DHCP acks into the log files saw 10 threads being created simultaneously. BTW, not implemented the radius part yet. ONly the pass/fail part is being tried.
Each response takes roughly 1 second in the network normally. The first thread does that but then it progressively worsens . The 10th takes 8 seconds. The reason I *think* is how the threads are scheduled and the join. From what I have read it looks like join blocks the other threads. So if you look at the 10th thread, it is blocked by the 9 threads before by their joins.
I even tried detach instead of join. Again, it progressively worsens as it reaches the 10th thread. I dont know why.
I am looking at ways to for each http call to take roughly the same time and finish and be able to have a hash in the main thread w the status for each MAC I have encountered.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Should I use threads? Perl/DHCP/Radius
by BrowserUk (Patriarch) on Aug 25, 2010 at 14:40 UTC | |
by MonkeyMonk (Sexton) on Aug 25, 2010 at 15:48 UTC | |
by BrowserUk (Patriarch) on Aug 25, 2010 at 16:21 UTC | |
by MonkeyMonk (Sexton) on Aug 26, 2010 at 08:53 UTC | |
by BrowserUk (Patriarch) on Aug 26, 2010 at 10:07 UTC | |
by zentara (Cardinal) on Aug 26, 2010 at 11:20 UTC |