#include "libi3.h" #include #include /* * Puts the given socket file descriptor into non-blocking mode or dies if * setting O_NONBLOCK failed. Non-blocking sockets are a good idea for our * IPC model because we should by no means block the window manager. * */ void set_nonblock(int sockfd) { int flags = fcntl(sockfd, F_GETFL, 0); if (flags & O_NONBLOCK) { return; } flags |= O_NONBLOCK; if (fcntl(sockfd, F_SETFL, flags) < 0) { err(-1, "Could not set O_NONBLOCK"); } }