The execution lock is properly locked or released before notifying the observers.
This will remove some race conditions where the locked() method is called before the acquire() or release() methods terminate.
Authored by: bugman 2011-08-06
Parent: [r14194]
Child: [r14196]