package Ubic::Lockf::Alarm; { $Ubic::Lockf::Alarm::VERSION = '1.53'; } use strict; use warnings; # ABSTRACT: alarm guard sub new ($$) { my ($class, $timeout) = @_; bless { 'alarm' => alarm($timeout), 'time' => time }; } sub DESTROY ($) { my $self = shift; local $@; my $alarm; if ($self->{alarm}) { $alarm = $self->{alarm} + $self->{time} - time; $alarm = 1 if $alarm <= 0; } else { $alarm = 0; } alarm($alarm); } 1; __END__ =pod =head1 NAME Ubic::Lockf::Alarm - alarm guard =head1 VERSION version 1.53 =head1 DESCRIPTION This module is necessary to implement timeouts in C class. =head1 METHODS =over =item B<< new($timeout) >> Construct new alarm guard object. =back =head1 AUTHOR Vyacheslav Matyukhin =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Yandex LLC. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut