ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro.pm
(Generate patch)

Comparing Coro/Coro.pm (file contents):
Revision 1.321 by root, Sun Feb 2 03:26:06 2014 UTC vs.
Revision 1.322 by root, Tue Mar 4 05:07:34 2014 UTC

652 Coro::on_enter { 652 Coro::on_enter {
653 # on entering the thread, we set an VTALRM handler to cede 653 # on entering the thread, we set an VTALRM handler to cede
654 $SIG{VTALRM} = sub { cede }; 654 $SIG{VTALRM} = sub { cede };
655 # and then start the interval timer 655 # and then start the interval timer
656 Time::HiRes::setitimer &Time::HiRes::ITIMER_VIRTUAL, 0.01, 0.01; 656 Time::HiRes::setitimer &Time::HiRes::ITIMER_VIRTUAL, 0.01, 0.01;
657 }; 657 };
658 Coro::on_leave { 658 Coro::on_leave {
659 # on leaving the thread, we stop the interval timer again 659 # on leaving the thread, we stop the interval timer again
660 Time::HiRes::setitimer &Time::HiRes::ITIMER_VIRTUAL, 0, 0; 660 Time::HiRes::setitimer &Time::HiRes::ITIMER_VIRTUAL, 0, 0;
661 }; 661 };
662 662
663 &{+shift}; 663 &{+shift};
664 } 664 }
665 665
666 # use like this: 666 # use like this:
667 timeslice { 667 timeslice {
668 # The following is an endless loop that would normally 668 # The following is an endless loop that would normally
669 # monopolise the process. Since it runs in a timesliced 669 # monopolise the process. Since it runs in a timesliced
670 # environment, it will regularly cede to other threads. 670 # environment, it will regularly cede to other threads.
671 while () { } 671 while () { }
672 }; 672 };
673 673
674 674
675=item killall 675=item killall
676 676
677Kills/terminates/cancels all coros except the currently running one. 677Kills/terminates/cancels all coros except the currently running one.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines