module java.lang.ThreadLocal; import java.lang.util; version(Tango){ static import tango.core.Thread; class ThreadLocal{ alias tango.core.Thread.ThreadLocal!(Object) TLSType; TLSType tls; this(){ tls = new TLSType( initialValue() ); } Object get(){ return tls.val(); } protected Object initialValue(){ return null; } void set(Object value){ return tls.val( value ); } } } else { // Phobos class ThreadLocal{ Object tls; this(){ tls = initialValue(); } Object get(){ return tls; } protected Object initialValue(){ return null; } void set(Object value){ tls = value; } } }