package OurNet::BBSApp::Schedule;
use vars qw/@tasklist %taskid/;
use strict;
sub refresh {
(@tasklist && $tasklist[0]->{time} <= time());
}
sub add {
my $ttask = shift;
push @tasklist, $ttask;
resort();
}
sub resort {
@tasklist = sort {$a->{time} cmp $b->{time}} @tasklist;
}
sub process {
while(@tasklist && $tasklist[0]->{time} <= time()) {
my $ttask = shift @tasklist;
&{$ttask->{func}} unless $ttask->{remove};
}
}
1;