<http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncTh...
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 26 Sep 2011 17:36:19 +0000 (17:36 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 26 Sep 2011 17:36:19 +0000 (17:36 +0000)
commitb8868d475b0dc4bb2bb4d07bb15fa47702d79707
tree4eb7c99d7991c7f62530e5a360ede63650922330
parente8b8e8d71c1ed82154afbc168ecfde4d0c89f8c1
<webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing

If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
thread happened to call wakeSyncThread a second time while the first loop iteration was executing.

Reviewed by Anders Carlsson.

* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
all pending work.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/loader/icon/IconDatabase.cpp