Collaboration diagram for Early Lock Release: Quarks:
![]() |
This is for experimentation only, and is not well-tested or supported.
How used:
sm_quark_t *q = new sm_quark_t; q->open(); // inserts marker in transaction's list. ... q->close(); // frees short-duration locks to the marker. delete q;
Deleting the quark without closing it causes it to be closed. Quarks may not be used with multi-threaded transactions.
Note that if a transaction has multiple threads attached when a thread opens a quark, there is no way to determine where the quark takes effect, and since it affects the locks acquired by all threads of the transaction, it must be used very carefully where multiply-threaded transactions are concerned.
Classes | |
class | sm_quark_t |
List of locks acquired by a transaction since the quark was "opened". More... |