Udostępnij za pośrednictwem


2009 Advent Calendar December 21st

The change we did yesterday makes it possible to remove the use of helper threads and timeouts for the MutexLock tests. Here is a first refactoring:

    1:      public class Given_an_abandoned_lock
   2:      {
   3:          private class MutexWrapperAlwaysAbandoned : MutexWrapper
   4:          {
   5:              public new void WaitOne()
   6:              {
   7:                  throw new AbandonedMutexException();
   8:              }
   9:          }
  10:   
  11:          private MutexLock<MutexWrapperAlwaysAbandoned> _lock;
  12:          
  13:          public Given_an_abandoned_lock()
  14:          {
  15:              _lock = new MutexLock<MutexWrapperAlwaysAbandoned>();
  16:          }
  17:   
  18:          [Fact]
  19:          void It_should_be_possible_to_take_lock_when_thread_dies()
  20:          {
  21:              Assert.DoesNotThrow(() => { _lock.Lock(); });
  22:          }
  23:      }