[Webkit-unassigned] [Bug 17177] Storage tasks are getting lost

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Feb 6 01:55:11 PST 2008


http://bugs.webkit.org/show_bug.cgi?id=17177


ap at webkit.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |beidson at apple.com




------- Comment #1 from ap at webkit.org  2008-02-06 01:55 PDT -------
The database thread loop looks like this:

    while (!m_terminationRequested) {
        m_threadMutex.unlock();
        AutodrainedPool pool;

        LOG(StorageAPI, "Iteration of main loop for DatabaseThread %p", this);

        bool result;
        do {
            result = dispatchNextTaskIdentifier();
            if (m_terminationRequested)
                break;
        } while(result);

        if (m_terminationRequested)
            break;

        pool.cycle();
        m_threadMutex.lock();
        m_threadCondition.wait(m_threadMutex);
    }

It's pretty clear how the wakeup is lost - if a new task is dispatched after
the inner loop has decided that it has nothing else to do, but before we're
stopped on the condition, the condition is signaled in vain.


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list