Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=65734 --- shadow/65734 2006-07-30 20:12:31.000000000 -0400 +++ shadow/65734.tmp.23627 2006-07-31 06:33:58.000000000 -0400 @@ -40,6 +40,42 @@ Created an attachment (id=17215) Single thread timer scheduler ------- Additional Comments From [EMAIL PROTECTED] 2006-07-30 20:12 ------- If the callback throws, the scheduler thread is killed. + +------- Additional Comments From [EMAIL PROTECTED] 2006-07-31 06:33 ------- +Style wise, this patch needs some work: + ++ static object sync_obj = new object(); ++ static object sync_obj2 = new object(); + +How are those used? + +Why is TimerScheduler a class? it seems like it could be static +methods in Timer? Also, why a TimerJob class. This is a 1<->1 relation +with a Timer. + +Variables and methods are named with mixed conventions. Make things +consistent, at the very least. In general, no underscore_names for +methods. Also, enum values shouldn't be C_CONSTANT_NAMED. + ++ readonly int TIME_SLICE = 10 ; // 10 msec + +Should be const + ++ log("could not properly signal timer-scheduler, waiting..."); ++ Thread.Sleep(5); + +THis is *really* *really* dubious. You need to do something like +"calcuate the next time you will wake up, and wait on an object with +that timeout. Pulse the object if a new timer is added". This will +wake up the CPU far too often, and (for example) waste battery power. +It is a blocker for this patch. + ++ void log(string str) { ++ if (Environment.GetEnvironmentVariable("MONO_TIMER_DEBUG") != null) + +Should probably be cached. + + _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
