Previous: DSR Transactions, Up: Data Store API Reference

8.7 Multithreading Considerations

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.