require thread local storage for power on self thread check