So as an update to this for anybody who's interested, I now have a working
version with no verification errors simply by moving the monitor-enter
outside the try block, so that if monitor-enter fails to acquire the lock,
monitor-exit is not called.
(the reason this wasn't working before was that I
I'm compiling clojure on android and running it using the new ART runtime,
and all works fine apart from the locking macro which fails ART's bytecode
verification.
Example generated bytecode here:
https://gist.github.com/AdamClements/2ae6c4919964b71eb470
The try block in java doesn't cover the mo