⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poller_sigfd.cc

📁 实现了poll/epoll/devpoll等C++封装
💻 CC
字号:
#if HAVE_F_SETSIG && HAVE_F_SETAUXFL#include "Poller_sigfd.h"#include "dprint.h"#include <unistd.h>#include <fcntl.h>/** Add a file descriptor to the set we monitor.  Caller should already have established a handler for SIGIO. @param fd file descriptor to add @param client object to handle events for this fd.  May use same client with more than one fd. @param eventmask initial event mask for this fd */int Poller_sigfd::add(int fd, Client *client, short eventmask) {	int flags = O_ONESIGFD;	// FIXME: want to do GETAUXFL too if any other aux flags get defined	if (fcntl(fd, F_SETAUXFL, flags) < 0) {		int err = errno;		LOG_ERROR(("add: fcntl(fd %d, F_SETAUXFL, 0x%x) returns err %d\n",				fd, flags, err));		return err;	}	return Poller_sigio::add(fd, client, eventmask);}/// Remove a file descriptor.int Poller_sigfd::del(int fd){	int flags = 0;	// FIXME: want to do GETAUXFL too if any other aux flags get defined	if (fcntl(fd, F_SETAUXFL, flags) < 0) {		int err = errno;		LOG_ERROR(("del: fcntl(fd %d, F_SETAUXFL, 0x%x) returns err %d\n",				fd, flags, err));		return err;	}	return Poller_sigio::del(fd);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -