internal TransactionTable()
{
// Create a timer that is initially disabled by specifing an Infinite time to the first interval
_timer = new Timer(new TimerCallback(ThreadTimer), null, Timeout.Infinite, _timerInterval);
// Note that the timer is disabled
_timerEnabled = false;
// Store the timer interval
_timerInterval = 1 << TransactionTable.timerInternalExponent;
// Ticks start off at zero.
_ticks = 0;
// The head of the list is long.MaxValue. It contains all of the transactions that for
// some reason or other don't have a timeout.
_headBucketSet = new BucketSet(this, long.MaxValue);
// Allocate the lock
_rwLock = new CheapUnfairReaderWriterLock();
}