API for singleton
(1.1.x branch)
by
Stuart Sierra
Usage:
(ns your-namespace
(:require clojure.contrib.singleton))
Overview
Singleton functions
Public Variables and Functions
global-singleton
function
Usage: (global-singleton f)
Returns a global singleton function. f is a function of no
arguments that creates and returns some object. The singleton
function will call f just once, the first time it is needed, and
cache the value for all subsequent calls.
Warning: global singletons are often unsafe in multi-threaded code.
Consider per-thread-singleton instead.
per-thread-singleton
function
Usage: (per-thread-singleton f)
Returns a per-thread singleton function. f is a function of no
arguments that creates and returns some object. The singleton
function will call f only once for each thread, and cache its value
for subsequent calls from the same thread. This allows you to
safely and lazily initialize shared objects on a per-thread basis.
Warning: due to a bug in JDK 5, it may not be safe to use a
per-thread-singleton in the initialization function for another
per-thread-singleton. See
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5025230