Skip to content
Snippets Groups Projects
Commit c6923a30 authored by Micah Elizabeth Scott's avatar Micah Elizabeth Scott
Browse files

Cleanup nonblocking socket init

parent 547c0eec
No related branches found
No related tags found
No related merge requests found
......@@ -66,7 +66,7 @@ void OPCSink::start(struct addrinfo *listenAddr)
int arg = 1;
setsockopt(mSocket, SOL_SOCKET, SO_REUSEADDR, SOCKOPT_ARG(&arg), sizeof arg);
fcntl(mSocket, F_SETFL, O_NONBLOCK);
setNonBlock(mSocket);
if (bind(mSocket, listenAddr->ai_addr, listenAddr->ai_addrlen)) {
perror("bind");
......@@ -86,6 +86,11 @@ void OPCSink::start(struct addrinfo *listenAddr)
mThread = new tthread::thread(threadWrapper, this);
}
void OPCSink::setNonBlock(int fd)
{
fcntl(fd, F_SETFL, O_NONBLOCK);
}
void OPCSink::threadWrapper(void *arg)
{
OPCSink *self = (OPCSink*) arg;
......@@ -159,6 +164,8 @@ void OPCSink::pollAccept()
return;
}
setNonBlock(mSocket);
// Disable nagle algorithm, we want low-latency
int arg = 1;
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, SOCKOPT_ARG(&arg), sizeof arg);
......
......@@ -82,6 +82,7 @@ private:
static void threadWrapper(void *arg);
void threadFunc();
void setNonBlock(int fd);
void pollAccept();
bool pollClient(Client &client);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment