[Mono-bugs] [Bug 79864][Wis] New - Mono consumes 100% CPU on raising events on Solaris

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Nov 7 19:17:51 EST 2006


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 psingh at fnfr.com.

http://bugzilla.ximian.com/show_bug.cgi?id=79864

--- shadow/79864	2006-11-07 19:17:50.000000000 -0500
+++ shadow/79864.tmp.24774	2006-11-07 19:17:50.000000000 -0500
@@ -0,0 +1,53 @@
+Bug#: 79864
+Product: Mono: Runtime
+Version: 1.1
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Wishlist
+Component: misc
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: psingh at fnfr.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Mono consumes 100% CPU on raising events on Solaris
+
+This is may be related to the other solaris bug I have filed (79852).
+
+After our program does some memory intensive operation on Solaris e.g.
+loading a big XML document, when we raise events from a class, the CPU gets
+pegged at 100% for > 5 minutes before that event is raised. For example, in
+the example below, we see "before raise" and 5 minutes later we see "event
+received". This simple example works - but the same sample code in a big
+application breaks down as I have described above. Since I do not have mdb
+for Solaris, I tried using gdb - but I could not make head or tail out of
+it. If I single step in gdb, it seems to be continuously executing "wapi"
+code consuming 100% CPU.
+
+class foo {
+   public event EventHandler MyEvent;
+   public void FireEvent {
+      if (MyEvent != null) {
+         Console.WriteLine("before raise");
+         MyEvent(this, EventArgs.Empty);
+         Console.WriteLine("after raise");
+      }
+   }
+}
+
+class Receiver {
+    public void mmm {
+        foo x = new foo();
+        x.MyEvent += new ....... MyEventHandler;
+        x.FireEvent();
+    }
+
+    public void MyEventHandler(object sender, EventArgs e)
+    {
+        Console.WriteLine("event received");
+    }
+}


More information about the mono-bugs mailing list