Add ability to block by acquiring and releasing a unique token

All files need to be indented with tabs and not spaces.  That is one of the rules (whether you like it or not).  Please make sure that files that you check in do not change whitespace used.