[corlib] Fix race in unit test
authorMarek Safar <marek.safar@gmail.com>
Mon, 23 Jun 2014 12:30:02 +0000 (14:30 +0200)
committerMarek Safar <marek.safar@gmail.com>
Mon, 23 Jun 2014 12:30:02 +0000 (14:30 +0200)
mcs/class/corlib/Test/System/LazyTest.cs

index 01885f9767cb6ebdd1d66a124741d7068b87b820..6fb77f4d0fe0105c6296ee86666a626a7ff01598 100644 (file)
@@ -273,6 +273,7 @@ namespace MonoTests.System
                public void ConcurrentInitialization ()
                {
                        var init = new AutoResetEvent (false);
+                       var e1_set = new AutoResetEvent (false);
 
                        var lazy = new Lazy<string> (() => {
                                init.Set ();
@@ -286,6 +287,7 @@ namespace MonoTests.System
                                        string value = lazy.Value;
                                } catch (Exception ex) {
                                        e1 = ex;
+                                       e1_set.Set ();
                                }
                        });
                        thread.Start ();
@@ -306,8 +308,9 @@ namespace MonoTests.System
                                e3 = ex;
                        }
 
-                       Assert.AreSame (e1, e2, "#2");
-                       Assert.AreSame (e1, e3, "#3");
+                       Assert.IsTrue (e1_set.WaitOne (3000), "#2");
+                       Assert.AreSame (e1, e2, "#3");
+                       Assert.AreSame (e1, e3, "#4");
                }
 
        }