[EFL] Remove redundant pipe write to prevent pipe buffer full.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Dec 2012 11:00:12 +0000 (11:00 +0000)
committerByungwoo Lee <bw80.lee@samsung.com>
Wed, 27 Mar 2013 03:57:49 +0000 (12:57 +0900)
commit75f8ddbaf34c195071156596662f42199fc32d39
tree4d5d32c376f12b1d1f41e6370db56b0f520042a5
parentc3fbf0afcc3a995c33a05dc5666809504fa2136a
[EFL] Remove redundant pipe write to prevent pipe buffer full.
https://bugs.webkit.org/show_bug.cgi?id=101135

Patch by Byungwoo Lee <bw80.lee@samsung.com> on 2012-12-13
Reviewed by Gyuyoung Kim.

To prevent a source of a deadlock, remove the redundant pipe write
in wakeUp() function.

EFL uses ecore_pipe_write() to wake up main run loop, and the function
uses POSIX pipe write with O_NONBLOCK disabled.
With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
pipe write will be blocked until it can be written.

Currently, every wakeUp() function calls ecore_pipe_write() to invoke
wakeUpEvent() callback. And this can make pipe buffer full status
which is the one reason of the lockup problem described in Bug 99494.

* platform/RunLoop.h:
(RunLoop):
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::wakeUpEvent):
(WebCore::RunLoop::wakeUp):

Change-Id: I0c46a64d885c929cb2ac265d4b0da020cd3db9a7
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137580 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/RunLoop.h
Source/WebCore/platform/efl/RunLoopEfl.cpp