- 论坛徽章:
- 0
|
关于timeout官方只是说:
- eval {
- local $SIG{ALRM} = sub { die "TIMEOUT\n" };
- alarm($seconds);
- ... code to execute with timeout here ...
- alarm(0); # cancel alarm (if code ran fast)
- };
- alarm(0); # cancel alarm (if eval failed)
- if ( $@ eq "TIMEOUT\n" ) { ... }
复制代码
但是试过不起作用:
- use DBI;
- eval {
- local $SIG{ALRM} = sub { die "TIMEOUT\n" };
- alarm(2);
- my $dbh = DBI->connect("DBI:mysql:$db_name:$db_server:$db_port",$db_user, $db_password);
- alarm(0);
- };
- alarm(0);
- if ( $@ eq "TIMEOUT\n" ) { print "timeout\n"; }
复制代码
结果还是等了十几秒才结束执行,且没有打印“timeout”。 |
|