dogpile.core provides the dogpile lock, one which allows a single thread or process to generate an expensive resource while other threads/processes use the “old” value, until the “new” value is ready.
dogpile.core is at the core of the dogpile.cache package which provides for a basic cache API and sample backends based on the dogpile concept.