void IDBTransactionBackendImpl::taskTimerFired(Timer<IDBTransactionBackendImpl>*) { IDB_TRACE("IDBTransactionBackendImpl::taskTimerFired"); ASSERT(!m_taskQueue.isEmpty()); if (m_state == StartPending) { m_transaction->begin(); m_state = Running; } TaskQueue queue; queue.swap(m_taskQueue); while (!queue.isEmpty() && m_state != Finished) { ASSERT(m_state == Running); OwnPtr<ScriptExecutionContext::Task> task(queue.first().release()); queue.removeFirst(); m_pendingEvents++; task->performTask(0); } }