use closeable thread local
not for the close method (since its static), but more for its amortized GC of thread locals