… | |
… | |
63 | my ($class, %arg) = @_; |
63 | my ($class, %arg) = @_; |
64 | |
64 | |
65 | my $cb = $arg{cb}; |
65 | my $cb = $arg{cb}; |
66 | my $ival = $arg{interval} * 1000; |
66 | my $ival = $arg{interval} * 1000; |
67 | |
67 | |
68 | my $source; $source = add Glib::Timeout $arg{after} * 1000, |
68 | my $source; $source = add Glib::Timeout $arg{after} < 0 ? 0 : $arg{after} * 1000, |
69 | $ival ? sub { |
69 | $ival ? sub { |
70 | remove Glib::Source $source; |
70 | remove Glib::Source $source; |
71 | $source = add Glib::Timeout $ival, sub { &$cb; 1 }; |
71 | $source = add Glib::Timeout $ival, sub { &$cb; 1 }; |
72 | &$cb; |
72 | &$cb; |
73 | 0 |
73 | 0 |