selectable.cc
来自「Unix下的MUD客户端程序」· CC 代码 · 共 47 行
CC
47 行
#include "mcl.h"#include <sys/time.h>List<Selectable*> Selectable::ioList;// Do a select on all registered Selectable objectsvoid Selectable::select(int sec, int usec){ fd_set in_set, out_set; Selectable *i; int max_fd = 0; struct timeval tv; tv.tv_usec = usec; tv.tv_sec = sec; FD_ZERO(&in_set); FD_ZERO(&out_set); for (i = ioList.rewind(); i; i = ioList.next()) max_fd = max(max_fd, i->init_fdset(&in_set, &out_set)); while (::select(max_fd+1, &in_set, &out_set, NULL, &tv) < 0) if (errno != EAGAIN && errno != EINTR) { perror ("select"); exit (1); } // @@ Async connections are ready when ready to be written to, not read from for (i = ioList.rewind(); i; i = ioList.next()) i->check_fdset(&in_set, &out_set);}Selectable::Selectable() { ioList.append(this);}Selectable::~Selectable() { ioList.remove(this);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?