SDL::Time (3)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
SDL::Time - An SDL Perl extension for managing timersCATEGORY
CoreSYNOPSIS
use warnings; use strict; use threads; use threads::shared; use SDL::Time; package foo; use SDL ':all'; SDL::init(SDL_INIT_TIMER); my $tick :shared = 0; sub ticker { $tick++; warn $tick; return 100; } package main; my $id = SDL::Time::add_timer(100, 'foo::ticker'); sleep(2); SDL::Time::remove_timer($id);
METHODS
add_timer
my $id = SDL::Timer::add_timer( $ms_interval, $callback );
This runs in a separate thread and a cloned Perl thread. "threads" and "threads::shared" must be used to share any variables the timer uses.
The $callback function, specified with a string of the function's name, will be called after the milliseconds of $interval have elapsed. The actual delay may be longer than specified depending on the underlying
The timer callback function may run in a different thread to your main program, so it shouldn't call any functions from within itself. You may call SDL::push_event, however.
"SDL::Time::add_timer" returns the identifier value of the generated timer or undef on error.
Note: You must initialize ("SDL::init") the timer subsystem to use this function.
remove_timer
SDL::Timer::remove_timer( $id );
The other way to cancel a timer is to use "SDL::Time::remove_timer" on the $id of a timer. This
"SDL::Time::remove_timer" returns 0 on success or "-1" on error.