fn with_env_lock<T>(f: &fn() -> T) -> T {
    use unstable::finally::Finally;

    unsafe {
        return do (|| {
            rust_take_env_lock();
            f()
        }).finally {
            rust_drop_env_lock();
        };
    }

    extern {
        #[fast_ffi]
        fn rust_take_env_lock();
        #[fast_ffi]
        fn rust_drop_env_lock();
    }
}
/*
Accessing environment variables is not generally threadsafe.
Serialize access through a global lock.
*/
Accessing environment variables is not generally threadsafe.
Serialize access through a global lock.
Accessing environment variables is not generally threadsafe . Serialize access through a global lock .
fn with_env_lock<T>(f: &fn() -> T) -> T {
    use unstable::finally::Finally;
    unsafe {
        return do (|| {
            rust_take_env_lock();
            f()
        }).finally {
            rust_drop_env_lock();
        };
    }
    extern {
        #[fast_ffi]
        fn rust_take_env_lock();
        #[fast_ffi]
        fn rust_drop_env_lock();
    }
}
fn with_env_lock < T > ( f : & fn ( ) -> T ) -> T { use unstable :: finally :: Finally ; unsafe { return do ( | | { rust_take_env_lock ( ) ; f ( ) } ) . finally { rust_drop_env_lock ( ) ; } ; } extern { # [ fast_ffi ] fn rust_take_env_lock ( ) ; # [ fast_ffi ] fn rust_drop_env_lock ( ) ; } }
Accessing environment variables is not generally threadsafe.
Accessing environment variables is not generally threadsafe .
f
&fn() -> T