static AutoCloseable tempSetThreadLocalIfNecessary(ThreadLocal tl, A a) { if (tl == null) null; A prev = setThreadLocal(tl, a); if (eq(prev, a)) null; ret autoCloseable { tl.set(prev); }; }