void OSEventThread::init_wakeuper() { int ret; int filedes[2]; #ifdef USE_SOCKET_PAIR ret = dumb_socketpair(filedes, 0); #else ret = pipe(filedes); #endif if (ret < 0) { ERR("Error in pipe() errno:%d\n", errno); } mFdWakeupRead = filedes[0]; mFdWakeupWrite = filedes[1]; SetFileDescNonBlocking(mFdWakeupRead); SetEvent (&mWakeupFdEvent, mFdWakeupRead, true, processWakeupCallback, NULL); { OSMutexLocker _locker(&mMutex); addWatch(&mWakeupFdEvent); } }
K init(K x) { dumb_socketpair(sockets, 0); sd1(sockets[1], recieve_data); FEED_STATE = FF_CONTINUE_FEED; start_thread(); return (K) 0; }
OPENCONNECT_CMD_SOCKET openconnect_setup_cmd_pipe(struct openconnect_info *vpninfo) { OPENCONNECT_CMD_SOCKET pipefd[2]; #ifdef _WIN32 if (dumb_socketpair(pipefd, 0)) return CMD_PIPE_ERR; #else if (pipe(pipefd) < 0) return CMD_PIPE_ERR; #endif if (set_sock_nonblock(pipefd[0]) || set_sock_nonblock(pipefd[1])) { closesocket(pipefd[0]); closesocket(pipefd[1]); return CMD_PIPE_ERR; } vpninfo->cmd_fd = pipefd[0]; vpninfo->cmd_fd_write = pipefd[1]; return vpninfo->cmd_fd_write; }