The thread ID mask and the fat lock mask overlap in ThinLockConstants. So, if we had threads with large IDs, we would probably get bizarre behavior. This is "ok" for now since we don't tend to start a lot of threads, but it would be horrible if:
we did start lots of threads, or
we allocated thread IDs more sparsely. This would not be an unreasonable thing to do and I've often thought of doing it - the UNIX PID-style allocation of IDs makes debugging easier since a new thread is less likely to share an ID with a dead thread.
This is not a blocker, and I'll fix this in my thin lock refactoring branch.