On 08/04/2011 09:22 AM, Torvald Riegel wrote: > On Thu, 2011-08-04 at 08:43 -0700, Richard Henderson wrote: >> On 08/03/2011 04:04 AM, Torvald Riegel wrote: >>> Move local_tid from gtm_thread to gtm_transaction. >>> >>> * config/generic/tls.h (gtm_thread): Move local_tid from here >>> ... >>> * libitm_i.h (local_tid): ... to here. >>> * beginend.cc (GTM::gtm_transaction::begin_transaction): Same. >>> (GTM::gtm_transaction::operator new): Set up gtm_thread if >>> necessary. >> >> This seems very wrong. Why? > > What seems wrong? > > local_tid is per thread and there is one gtm_transaction object per > thread, so moving it is correct, or not? > The purpose of this is to not having to access gtm_thread anymore in > begin. And it's a step towards merging gtm_thread and gtm_transaction > completely. > > Do you agree?
If you're going to merge gtm_thread and gtm_transaction, why are you moving things away from gtm_thread? As for "not having to access gtm_thread", the non-glibc case for accessing gtm_txn is to pull the value out of gtm_thread. So I think you're moving data in the wrong direction. r~