--- deliantra/server/include/cfperl.h 2007/06/03 11:22:02 1.75 +++ deliantra/server/include/cfperl.h 2007/06/05 13:05:02 1.77 @@ -350,10 +350,7 @@ template void put (keyword k, const T *v) { - if (v) - put (k, v->name); - else - put (k, (const char *)0); + put (k, v ? &v->name : (const char *)0); } template @@ -446,16 +443,21 @@ do_cede_every (); } - static void cede_to_tick () + static bool cede_to_tick () { - if (expect_false (time () >= next_cede)) - do_cede_to_tick (); + if (expect_true (time () < next_cede)) + return false; + + do_cede_to_tick (); + return true; } - static void cede_to_tick_every (int count) + static bool cede_to_tick_every (int count) { - if (expect_false (++cede_counter >= count)) - cede_to_tick (); + if (expect_true (++cede_counter < count)) + return false; + + return cede_to_tick (); } static void wait_for_tick ();