> -----Original Message-----
> From: Kevin Lewis [mailto:klewis@stripped]
> Sent: Monday, August 25, 2008 10:36 PM
> To: 'Vladislav Vaintroub'; commits@stripped
> Subject: RE: bzr commit into mysql-6.0-falcon branch (vvaintroub:2798)
> Bug#38933
>
> Vlad,
>
> It looks like Transaction::dropTable still locks syncIndexes outside
> releaseDeferredIndexes().
Actually it does not
void Transaction::dropTable(Table* table)
{
- Sync sync(&syncIndexes, "Transaction::dropTable");
- sync.lock(Exclusive);
-
releaseDeferredIndexes(table);
- // Keep exclusive lock to avoid race condition with writeComplete
-
+ Sync syncRec(&syncRecords,"Transaction::dropTable(2)");
+ syncRec.lock(Exclusive);
for (RecordVersion **ptr = &firstRecord, *rec; (rec = *ptr);)
if (rec->format->table == table)
removeRecord(rec);