On 08/05/2011 10:33 AM, Torvald Riegel wrote: > Use per-transaction reader flags for the serial lock (gtm_rwlock). > > * config/posix/rwlock.cc (gtm_rwlock::read_lock): Changed locking > implementation. > (gtm_rwlock::read_unlock): Same. > (gtm_rwlock::write_lock_generic): New. Generalized from ... > (gtm_rwlock::write_lock, gtm_rwlock::write_upgrade): ... these. > * libitm_i.h (GTM::gtm_transaction): Added shared_state. > * config/posix/rwlock.h (GTM::gtm_rwlock): Removed a_reader and > w_upgrade. Replaced by per-transaction flags (in shared_state). > Added c_confirmed_writers. > (GTM::gtm_rwlock::read_lock, GTM::gtm_rwlock::read_unlock, > GTM::gtm_rwlock::write_upgrade): Add tx parameter. > * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same. > * method-serial.cc (GTM::gtm_transaction::serialirr_mode): Same. > * beginend.cc (GTM::gtm_transaction::begin_transaction, > _ITM_abortTransaction, GTM::gtm_transaction::trycommit): Same. > * libitm.texi: Document locking conventions and implementations in > libitm.
Ok. r~