ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/cf.pm
(Generate patch)

Comparing deliantra/server/lib/cf.pm (file contents):
Revision 1.190 by root, Mon Jan 22 03:44:41 2007 UTC vs.
Revision 1.191 by root, Tue Jan 23 01:05:18 2007 UTC

2294 for my $signal (qw(INT HUP TERM)) { 2294 for my $signal (qw(INT HUP TERM)) {
2295 Event->signal ( 2295 Event->signal (
2296 reentrant => 0, 2296 reentrant => 0,
2297 data => WF_AUTOCANCEL, 2297 data => WF_AUTOCANCEL,
2298 signal => $signal, 2298 signal => $signal,
2299 prio => 0,
2299 cb => sub { 2300 cb => sub {
2300 cf::cleanup "SIG$signal"; 2301 cf::cleanup "SIG$signal";
2301 }, 2302 },
2302 ); 2303 );
2303 } 2304 }
2478my $bug_warning = 0; 2479my $bug_warning = 0;
2479 2480
2480$TICK_WATCHER = Event->timer ( 2481$TICK_WATCHER = Event->timer (
2481 reentrant => 0, 2482 reentrant => 0,
2482 parked => 1, 2483 parked => 1,
2483 prio => -1, 2484 prio => 0,
2484 at => $NEXT_TICK || $TICK, 2485 at => $NEXT_TICK || $TICK,
2485 data => WF_AUTOCANCEL, 2486 data => WF_AUTOCANCEL,
2486 cb => sub { 2487 cb => sub {
2487 if ($Coro::current != $Coro::main) { 2488 if ($Coro::current != $Coro::main) {
2488 Carp::cluck "major BUG: server tick called outside of main coro, skipping it" 2489 Carp::cluck "major BUG: server tick called outside of main coro, skipping it"
2497 $NEXT_TICK += $TICK; 2498 $NEXT_TICK += $TICK;
2498 2499
2499 $WAIT_FOR_TICK->broadcast; 2500 $WAIT_FOR_TICK->broadcast;
2500 $WAIT_FOR_TICK_ONE->send if $WAIT_FOR_TICK_ONE->awaited; 2501 $WAIT_FOR_TICK_ONE->send if $WAIT_FOR_TICK_ONE->awaited;
2501 2502
2503 Event::sweep;
2504 Coro::cede_notself;
2505
2502 my $AFTER = Event::time; 2506# my $AFTER = Event::time;
2503 warn $AFTER - $NOW;#d# 2507# warn $AFTER - $NOW;#d#
2504 2508
2505 # if we are delayed by four ticks or more, skip them all 2509 # if we are delayed by four ticks or more, skip them all
2506 $NEXT_TICK = Event::time if Event::time >= $NEXT_TICK + $TICK * 4; 2510 $NEXT_TICK = Event::time if Event::time >= $NEXT_TICK + $TICK * 4;
2507 2511
2508 $TICK_WATCHER->at ($NEXT_TICK); 2512 $TICK_WATCHER->at ($NEXT_TICK);
2509 $TICK_WATCHER->start; 2513 $TICK_WATCHER->start;
2510 }, 2514 },
2511); 2515);
2512 2516
2513IO::AIO::max_poll_time $TICK * 0.2; 2517IO::AIO::max_poll_time $TICK * 0.1;
2514 2518
2515undef $Coro::AIO::WATCHER; 2519undef $Coro::AIO::WATCHER;
2516$AIO_POLL_WATCHER = Event->io ( 2520$AIO_POLL_WATCHER = Event->io (
2517 reentrant => 0, 2521 reentrant => 0,
2518 fd => IO::AIO::poll_fileno, 2522 fd => IO::AIO::poll_fileno,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines