From d866f6e8861647c45f438bc5b21905dacee41f8e Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 24 Dec 2014 17:01:52 -0200 Subject: Save two system calls for setting a socket non-blocking on Linux Linux's socket(2) system call can take SOCK_NONBLOCK and let us avoid the extra two fcntl(2) to change the setting after it's created. Change-Id: Ie0d7a2d51acc21acd850cbee6d0f76e27b1ae859 Reviewed-by: Richard J. Moore --- src/network/socket/qlocalsocket_unix.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'src/network/socket/qlocalsocket_unix.cpp') diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp index 57aab2cc77..1f6d42918e 100644 --- a/src/network/socket/qlocalsocket_unix.cpp +++ b/src/network/socket/qlocalsocket_unix.cpp @@ -235,19 +235,11 @@ void QLocalSocket::connectToServer(OpenMode openMode) } // create the socket - if (-1 == (d->connectingSocket = qt_safe_socket(PF_UNIX, SOCK_STREAM, 0))) { + if (-1 == (d->connectingSocket = qt_safe_socket(PF_UNIX, SOCK_STREAM, 0, O_NONBLOCK))) { d->errorOccurred(UnsupportedSocketOperationError, QLatin1String("QLocalSocket::connectToServer")); return; } - // set non blocking so we can try to connect and it won't wait - int flags = fcntl(d->connectingSocket, F_GETFL, 0); - if (-1 == flags - || -1 == (fcntl(d->connectingSocket, F_SETFL, flags | O_NONBLOCK))) { - d->errorOccurred(UnknownSocketError, - QLatin1String("QLocalSocket::connectToServer")); - return; - } // _q_connectToSocket does the actual connecting d->connectingName = d->serverName; -- cgit v1.2.3