using evil global to retain locks
Merge branch 'locks' into withblock
don't call blocks during canInitWithRequest cycles