Please refer to the code you suggested and my OP.
I constantly read /var/log/messages for DHCPACK. When I find one, I parse the MAC and send the API request in a separate thread. The creation of the threads is not a problem. The issue is how can I bring back the result as quickly as possible back to the main process.
Example: I get 10 such DHCP requests in less than 1 second. My code luanches all the threads in less than a second. . But bringing back the threads into the main process is causing delays with the logic below/
The rough logic here:for(;;){ while ( <DHCP> ) { # New ACK found. # $macthreads{$mac} = new thread(\&launch, l_opts) }#while foreach $mac (keys(%macthreads)){ if($macthreads{$mac}->is_joinable { $macthreads{$mac}->join; delete $macthreads{$mac}; } }#for
I used the Time::HiRes module. The first thread completes in 1 second. The last in more than 8 seconds.
In reply to Re^3: Should I use threads? Perl/DHCP/Radius
by MonkeyMonk
in thread Should I use threads? Perl/DHCP/Radius
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |