class X
{
static ManualResetEvent dispose = new ManualResetEvent (false);
+ static ManualResetEvent wait = new ManualResetEvent (false);
static IEnumerable GetIt2 ()
{
static int Delay ()
{
dispose.Set ();
- Thread.Sleep (10);
+ wait.WaitOne ();
return 1;
}
ThreadPool.QueueUserWorkItem (l => {
dispose.WaitOne ();
((IDisposable) e).Dispose ();
+ wait.Set ();
});
if (!e.MoveNext ())
<test name="test-iter-23.cs">
<type name="X">
<method name="Int32 Delay()" attrs="145">
- <size>28</size>
+ <size>32</size>
</method>
<method name="Int32 Main()" attrs="150">
<size>141</size>
<size>7</size>
</method>
<method name="Void .cctor()" attrs="6289">
- <size>12</size>
+ <size>23</size>
</method>
</type>
<type name="X+<GetIt2>c__Iterator0">
</type>
<type name="X+<Main>c__AnonStorey1">
<method name="Void <>m__0(System.Object)" attrs="131">
- <size>29</size>
+ <size>40</size>
</method>
<method name="Void .ctor()" attrs="6278">
<size>7</size>