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=80063

--- shadow/80063        2006-11-27 05:06:11.000000000 -0500
+++ shadow/80063.tmp.19322      2006-11-27 05:06:11.000000000 -0500
@@ -0,0 +1,63 @@
+Bug#: 80063
+Product: Mono: Runtime
+Version: 1.2
+OS: GNU/Linux [Other]
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: io-layer
+AssignedTo: [EMAIL PROTECTED]                            
+ReportedBy: [EMAIL PROTECTED]               
+QAContact: [EMAIL PROTECTED]
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Signals abort Thread.Sleep
+
+Description of Problem:
+When a non-fatal signal arrives at a process, running sleeps get interrupted.
+
+Steps to reproduce the problem:
+1. Invoke the following:
+
+using System;
+using System.Runtime.InteropServices;
+using System.Threading;
+
+class X {
+  const int SIGQUIT = 3;
+  [DllImport("libc")]
+  static extern int raise(int signal);
+
+  static void Main() {
+    new Thread(Raiser).Start();
+    DateTime before = DateTime.UtcNow;
+    Thread.Sleep(4000);
+    DateTime after = DateTime.UtcNow;
+    int millis = after.Subtract(before).Milliseconds;
+    Console.WriteLine("Slept for {0} ms", millis);
+    if (millis < 3900) throw new Exception("Too few millis");
+  }
+
+  static void Raiser() {
+    Thread.Sleep(500);
+    raise(SIGQUIT);
+  }
+}
+
+Actual Results:
+Full thread dump:
+[cut irrelevant stack traces]
+Slept for 501 ms
+
+Unhandled Exception: System.Exception: Too few millis
+  at X.Main () [0x00000]
+
+Expected Results:
+Reissuing the sleep after EINTR if necessary, always giving timestamp
+difference of at least 4000 ms (+- system clock inaccuracies).
+
+How often does this happen? 
+Always. The actual time varies between 500 and 610 ms.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to