I'm tempted to suggest using double-checked locking here.