atomic_thread_map_t Class Reference

Inherits sm_thread_map_t.

Collaboration diagram for atomic_thread_map_t:

Collaboration graph
[legend]
List of all members.

Detailed Description

Fingerprint for this smthread.

Each smthread_t has a fingerprint. This is used by the deadlock detector. The fingerprint is a bitmap; each thread's bitmap is unique, the deadlock detector ORs fingerprints together to make a "digest" of the waits-for-map. Rather than have fingerprints associated with transactions, we associate them with threads.

This class provides synchronization (protection) for updating the map.

Note:
: If you want to be sure the fingerprints are unique, for the purpose of eliminating false-positives in the lock manager's deadlock detector while debugging something, look at the code in smthread_t::_initialize_fingerprint(), where you can enable some debugging code. (There is no need to make them unique -- if there were, we'd use 1 bit per... -- but if you are debugging something you might want to ensure or detect uniqueness for that purpose.)

Definition at line 142 of file smthread.h.

Public Member Functions

bool has_reader () const
bool has_writer () const
void lock_for_read () const
void lock_for_write ()
void unlock_reader () const
void unlock_writer ()
 atomic_thread_map_t ()
 ~atomic_thread_map_t ()
atomic_thread_map_toperator= (const atomic_thread_map_t &other)


The documentation for this class was generated from the following file:
Generated on Mon Jan 2 15:14:03 2012 for Shore Storage Manager by  doxygen 1.4.7