Previous: DSR Transactions, Up: Data Store API Reference
This expands slightly on the multithreading discussion in Multi-threaded Applications.
Elephant provides a set of generic locking functions in
src/utils/locks.lisp
to help protect any shared structures.
There are standard locking functions (ele-with-lock
) and then
a special locking interface called ele-with-fast-lock
which
on some lisps provides a faster locking option than the standard OS
locks of the basic interface. (i.e. under Allegro this uses
without-interrupts
because Allegro still runs in a single
OS process on all platforms, this is not true of SBCL).
See the sections on Transaction handling, particularly the dynamic
behavior of *current-transaction*
. Also read up on the
store controller section in the User Guide to better understand the
role of *store-controller*
. At this time there are no other
global variables to worry about.