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.265 by root, Wed Nov 14 08:09:46 2007 UTC vs.
Revision 1.266 by root, Sun Dec 16 02:50:34 2007 UTC

76 76
77tstamp NOW, runtime; 77tstamp NOW, runtime;
78 78
79global gbl_ev; 79global gbl_ev;
80static AV *cb_global, *cb_attachable, *cb_object, *cb_player, *cb_client, *cb_type, *cb_map; 80static AV *cb_global, *cb_attachable, *cb_object, *cb_player, *cb_client, *cb_type, *cb_map;
81static SV *sv_runtime, *sv_next_tick; 81static SV *sv_runtime, *sv_next_tick, *sv_now;
82 82
83bitset<NUM_EVENT_TYPES> ev_want_event; 83bitset<NUM_EVENT_TYPES> ev_want_event;
84bitset<NUM_TYPES> ev_want_type; 84bitset<NUM_TYPES> ev_want_type;
85 85
86static HV 86static HV
1112 cede_counter = 0; 1112 cede_counter = 0;
1113 1113
1114 cede (); 1114 cede ();
1115 1115
1116 next_cede += (TICK / CEDES_PER_TICK) * 0.99; 1116 next_cede += (TICK / CEDES_PER_TICK) * 0.99;
1117 if (next_cede > SvNV (sv_next_tick) - 0.02) 1117 if (next_cede > SvNVx (sv_next_tick) - 0.02)
1118 next_cede = SvNV (sv_next_tick); 1118 next_cede = SvNVx (sv_next_tick);
1119} 1119}
1120 1120
1121void coroapi::do_cede_every () 1121void coroapi::do_cede_every ()
1122{ 1122{
1123 cede_counter = 0; 1123 cede_counter = 0;
1174 stash_cf_arch_wrap = gv_stashpv ("cf::arch::wrap" , 1); 1174 stash_cf_arch_wrap = gv_stashpv ("cf::arch::wrap" , 1);
1175 stash_cf_party_wrap = gv_stashpv ("cf::party::wrap" , 1); 1175 stash_cf_party_wrap = gv_stashpv ("cf::party::wrap" , 1);
1176 stash_cf_region_wrap = gv_stashpv ("cf::region::wrap", 1); 1176 stash_cf_region_wrap = gv_stashpv ("cf::region::wrap", 1);
1177 stash_cf_living_wrap = gv_stashpv ("cf::living::wrap", 1); 1177 stash_cf_living_wrap = gv_stashpv ("cf::living::wrap", 1);
1178 1178
1179 sv_now = get_sv ("cf::NOW" , 1); sv_upgrade (sv_now , SVt_NV);
1179 sv_runtime = get_sv ("cf::RUNTIME" , 1); sv_upgrade (sv_runtime , SVt_NV); 1180 sv_runtime = get_sv ("cf::RUNTIME" , 1); sv_upgrade (sv_runtime , SVt_NV);
1180 sv_next_tick = get_sv ("cf::NEXT_TICK", 1); sv_upgrade (sv_next_tick, SVt_NV); 1181 sv_next_tick = get_sv ("cf::NEXT_TICK", 1); sv_upgrade (sv_next_tick, SVt_NV);
1181 1182
1182 cb_global = get_av ("cf::CB_GLOBAL", 1); 1183 cb_global = get_av ("cf::CB_GLOBAL", 1);
1183 cb_attachable = get_av ("cf::CB_ATTACHABLE", 1); 1184 cb_attachable = get_av ("cf::CB_ATTACHABLE", 1);
1535 SvCUR_set (data_sv, dst - SvPVX (data_sv)); 1536 SvCUR_set (data_sv, dst - SvPVX (data_sv));
1536} 1537}
1537 1538
1538void _post_tick () 1539void _post_tick ()
1539 CODE: 1540 CODE:
1540 coroapi::next_cede = SvNV (sv_next_tick) - TICK * (1. - 1. / CEDES_PER_TICK); 1541 coroapi::next_cede = SvNVx (sv_next_tick) - TICK * (1. - 1. / CEDES_PER_TICK);
1541 1542
1542NV till_cede () 1543NV till_cede ()
1543 CODE: 1544 CODE:
1544 RETVAL = coroapi::next_cede - now (); 1545 RETVAL = coroapi::next_cede - now ();
1545 OUTPUT: 1546 OUTPUT:
1546 RETVAL 1547 RETVAL
1547 1548
1548NV till_tick () 1549NV till_tick ()
1549 CODE: 1550 CODE:
1550 RETVAL = SvNV (sv_next_tick) - now (); 1551 RETVAL = SvNVx (sv_next_tick) - now ();
1551 OUTPUT: 1552 OUTPUT:
1552 RETVAL 1553 RETVAL
1553 1554
1554NV floor (NV x) 1555NV floor (NV x)
1555 1556
1583 CODE: 1584 CODE:
1584 coroapi::cede_to_tick (); 1585 coroapi::cede_to_tick ();
1585 1586
1586void server_tick () 1587void server_tick ()
1587 CODE: 1588 CODE:
1588 NOW = now (); 1589 NOW = SvNVx (sv_now);
1589 runtime = SvNVx (sv_runtime); 1590 runtime = SvNVx (sv_runtime);
1590 server_tick (); 1591 server_tick ();
1591 1592
1592void 1593void
1593log_backtrace (utf8_string msg) 1594log_backtrace (utf8_string msg)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines