This looks to have some nasty characteristics with respect to priority inversion. I don't see this as desirable at all. You can't just paste in a little piece of syncrhonization like this, it needs to be a coherent addition to the language, and would need much more work.