[WK2] Looping for EINTR on close() is incorrect for Linux, at least
https://bugs.webkit.org/show_bug.cgi?id=117266

Patch by Sergio Correia <sergio.correia@openbossa.org> on 2013-06-20
Reviewed by Darin Adler.

Source/WebKit2:

Call closeWithRetry() to work around a difference in how the retry needs to
be done on Linux.

* Platform/CoreIPC/unix/AttachmentUnix.cpp:
(CoreIPC::Attachment::dispose):
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::platformInvalidate):
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::~Handle):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::~SharedMemory):
(WebKit::SharedMemory::createHandle):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::createWebProcessConnection):
* SharedWorkerProcess/SharedWorkerProcess.cpp:
(WebKit::SharedWorkerProcess::createWebProcessConnection):
* UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
(WebKit::ProcessLauncher::launchProcess): All these places had
``close-followed-by-EINTR-handling'' replaced with the new closeWithRetry()
function added in this commit.

Source/WTF:

Added file UniStdExtras with a closeWithRetry() function that works around
the EINTR behavior on Linux during a close() call: it closes the descriptor
unconditionally even when the call is interrupted.

* wtf/UniStdExtras.h: Added.
(WTF::closeWithRetry): Wrapper around POSIX close() that handles EINTR
correctly.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151825 268f45cc-cd09-0410-ab3c-d52691b4dbfc