my $snmptrapd = Net::SNMPTrapd->new(ReusePort => 1); while (1) { flock($lockfile,LOCK_EX); my $trap = $snmptrapd->get_trap(); flock($lockfile,LOCK_UN); # filter traps based on IP, etc. here $trap->process_trap(); # do some work here, usually taking 3-5ms }