Updated tests: latency test now directly writes to switch entries
before reading.  Previous test had all programs read first and then
write.  This meant that many programs would wait on a read lock, all
get scheduled simultaneously, and all but one aborted when only one
could acquire the immediately-following write lock.
Updated tests: throughput test now directly writes to switch entries
before reading.  Previous test had all programs read first and then
write.  This meant that many programs would wait on a read lock, all
get scheduled simultaneously, and all but one aborted when only one
could acquire the immediately-following write lock.
We can get null in speculation listener if the transaction has been
backed out.  In this case, it's okay to set internal_list to an empty
list, because we will undo/not apply its changes anyways.