Skip to content

Instantly share code, notes, and snippets.

@r
Created November 29, 2009 00:14
Show Gist options
  • Save r/244713 to your computer and use it in GitHub Desktop.
Save r/244713 to your computer and use it in GitHub Desktop.
class ThreadLocal[T](init: => T) extends java.lang.ThreadLocal[T] with Function0[T] {
override def initialValue:T = init
def apply = get
def withValue[S](thunk:(T => S)):S = thunk(get)
}
val tl = new ThreadLocal(System.currentTimeMillis)
// these three are all equivalent, and depends on your taste
tl.withValue { v => System.out.println(v) }
System.out.println(tl.get)
System.out.println(tl())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment