X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fbin%2Fbomb.pl;h=0f434d013bdcf68a9a19e52523df0061fe2c168e;hb=71a3bc5e72fdcf2a51c3d32f10b8248c0ac5399c;hp=6211eab85b49ac4067eeac8dfdc84f6b2ae76b29;hpb=a353544f60e704aca2e4bb68ae8a59e16e7a8624;p=mkws-moved-to-github.git diff --git a/test/bin/bomb.pl b/test/bin/bomb.pl index 6211eab..0f434d0 100755 --- a/test/bin/bomb.pl +++ b/test/bin/bomb.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -# Copyright (c) 2014 IndexData ApS. http://indexdata.com +# Copyright (c) 2014 Index Data ApS. http://indexdata.com # # bomb.pl - wrapper to stop a process after N seconds # @@ -38,6 +38,17 @@ my @system = @ARGV; die usage if $help; die usage if !@system; +# set CPU limit, in case the alarm handler will +# be ignored +eval { + require BSD::Resource; + BSD::Resource::setrlimit("RLIMIT_CPU", $timeout, 2*$timeout) or die "Cannot set CPU limit: $!\n"; +}; +if ($@) { + warn "WARNING: things would go more nicely with the BSD::Resource package\n"; +} + + # # use fork/exec instead system() # @@ -54,4 +65,3 @@ if ($pid) { else { } 1; -