… | |
… | |
59 | } |
59 | } |
60 | |
60 | |
61 | sub timer { |
61 | sub timer { |
62 | my ($class, %arg) = @_; |
62 | my ($class, %arg) = @_; |
63 | |
63 | |
64 | my $cb = $arg{cb}; |
64 | my $cb = $arg{cb}; |
65 | my $rp = $arg{repeat}; |
65 | my $ival = $arg{interval} * 1000; |
66 | |
66 | |
67 | my $source = add Glib::Timeout 1000 * delete $arg{after}, sub { |
67 | my $source; $source = add Glib::Timeout $arg{after} * 1000, |
68 | &$cb; |
68 | $ival ? sub { |
69 | $rp |
69 | remove Glib::Source $source; |
70 | }; |
70 | $source = add Glib::Timeout $ival, sub { &$cb; 1 }; |
|
|
71 | &$cb; |
|
|
72 | 0 |
|
|
73 | } |
|
|
74 | : sub { &$cb; 0 }; |
71 | |
75 | |
72 | bless \\$source, $class |
76 | bless \\$source, $class |
73 | } |
77 | } |
74 | |
78 | |
75 | sub DESTROY { |
79 | sub DESTROY { |