tempSetThreadLocalIfNecessary_weakRef - compares with existing value first. wrap value in WeakReference