ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/cfperl.xs
(Generate patch)

Comparing deliantra/server/server/cfperl.xs (file contents):
Revision 1.1 by root, Tue Aug 15 17:10:46 2006 UTC vs.
Revision 1.2 by root, Tue Aug 15 18:07:25 2006 UTC

500 500
501 rv = 0; 501 rv = 0;
502 } 502 }
503 else if (event_code == EVENT_CLOCK) 503 else if (event_code == EVENT_CLOCK)
504 { 504 {
505 dSP;
506 int i, count;
507
508 clean_obj_cache (); 505 clean_obj_cache ();
509
510 ENTER;
511 SAVETMPS;
512
513 // service up to 8 events per tick better would be
514 // to check for elapsed time and stop processing after
515 // 0.25 * server_tick or so
516 for (i = 9; --i; )
517 {
518 PUSHMARK (SP);
519 XPUSHs (sv_2mortal (newSViv (0)));
520 PUTBACK;
521 count = call_pv ("Event::one_event", G_SCALAR | G_EVAL);
522 SPAGAIN;
523
524 if (!count || !POPi)
525 break;
526 }
527
528 FREETMPS;
529 LEAVE;
530 } 506 }
531 else 507 else
532 { 508 {
533 dSP; 509 dSP;
534 510
734 perl_free (perl); 710 perl_free (perl);
735 perl = 0; 711 perl = 0;
736 } 712 }
737 713
738 return 0; 714 return 0;
715}
716
717void cfperl_sleep (double delta)
718{
719 dSP;
720 ENTER;
721 SAVETMPS;
722
723 PUSHMARK (SP);
724 XPUSHs (sv_2mortal (newSVnv (delta)));
725 PUTBACK;
726 call_pv ("cf::sleep_delta", G_DISCARD | G_VOID | G_EVAL);
727 SPAGAIN;
728
729 FREETMPS;
730 LEAVE;
739} 731}
740 732
741MODULE = cf PACKAGE = cf PREFIX = cf_ 733MODULE = cf PACKAGE = cf PREFIX = cf_
742 734
743BOOT: 735BOOT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines