curThread needs to be static in order to be shared properly across
threads.
curThread needs to be volatile to defeat thread-local caching.