4.8 Session - Session Management

#
4.8 `Session` - Session Management

The `Session` module provides objects for maintaining persistent sessions across requests.

The module contains a `BaseSession` class, which is not meant to be used directly (it provides no means of storing a session), `DbmSession` class, which uses a dbm to store sessions, and `FileSession` class, which uses individual files to store sessions.

The `BaseSession` class also provides session locking, both across processes and threads. For locking it uses APR global_mutexes (a number of them is pre-created at startup) The mutex number is computed by using modulus of the session id `hash()`. (Therefore it's possible that different session id's will have the same hash, but the only implication is that those two sessions cannot be locked at the same time resulting in a slight delay.)