public static void BasicRecursion(ref string message)
{
var obj = new object();
Assert.True(Monitor.TryEnter(obj));
Assert.True(Monitor.TryEnter(obj));
Monitor.Exit(obj);
Assert.True(Monitor.IsEntered(obj));
Monitor.Enter(obj);
Assert.True(Monitor.IsEntered(obj));
Monitor.Exit(obj);
Assert.True(Monitor.IsEntered(obj));
Monitor.Exit(obj);
Assert.False(Monitor.IsEntered(obj));
}