== Why is this an issue? The ``++Monitor.Pulse++`` call releases the object on which it was called and wakes up the first thread waiting for the lock on that object. Significantly, it only releases _one_ lock, and if multiple locks are held when it is called deadlocks could result. === Noncompliant code example [source,csharp] ---- public void doSomething(Object obj) { lock (this) //first lock { lock (obj) { // second lock // ... Monitor.Pulse(obj); // Noncompliant; only the second lock is released } } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Remove this "Monitor.Pulse" call; it only releases the lock on "xxx", leaving the one on "yyy" intact. ''' == Comments And Links (visible only on this page) === on 16 Jun 2015, 11:21:35 Tamas Vajk wrote: \[~ann.campbell.2], could you please go through this C# specific version of the rule? === on 16 Jun 2015, 13:35:03 Ann Campbell wrote: Looks good [~tamas.vajk] include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]