iovent bug fixed for FreeBSD
parent
94feb0b311
commit
74715cb089
3
HISTORY
3
HISTORY
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
Version 1.24 2016-01-26
|
Version 1.24 2016-01-27
|
||||||
* php extension compiled on PHP 7
|
* php extension compiled on PHP 7
|
||||||
* add skiplist which support stable sort
|
* add skiplist which support stable sort
|
||||||
* make.sh: use sed to replace perl
|
* make.sh: use sed to replace perl
|
||||||
|
|
@ -9,6 +9,7 @@ Version 1.24 2016-01-26
|
||||||
* add function get_processes for Linux
|
* add function get_processes for Linux
|
||||||
* ini_file_reader add iniGetSectionNames and iniGetSectionItems
|
* ini_file_reader add iniGetSectionNames and iniGetSectionItems
|
||||||
* add fast_blocked_queue.[hc]
|
* add fast_blocked_queue.[hc]
|
||||||
|
* iovent bug fixed for FreeBSD
|
||||||
|
|
||||||
Version 1.23 2015-11-16
|
Version 1.23 2015-11-16
|
||||||
* sched_thread.c: task can execute in a new thread
|
* sched_thread.c: task can execute in a new thread
|
||||||
|
|
|
||||||
|
|
@ -113,19 +113,15 @@ int ioevent_modify(IOEventPoller *ioevent, const int fd, const int e,
|
||||||
struct kevent ev[2];
|
struct kevent ev[2];
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (e & IOEVENT_READ) {
|
if (e & IOEVENT_READ) {
|
||||||
if (!(ioevent->care_events & IOEVENT_READ)) {
|
|
||||||
EV_SET(&ev[n++], fd, EVFILT_READ, EV_ADD | ioevent->extra_events, 0, 0, data);
|
EV_SET(&ev[n++], fd, EVFILT_READ, EV_ADD | ioevent->extra_events, 0, 0, data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if ((ioevent->care_events & IOEVENT_READ)) {
|
else if ((ioevent->care_events & IOEVENT_READ)) {
|
||||||
EV_SET(&ev[n++], fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);
|
EV_SET(&ev[n++], fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e & IOEVENT_WRITE) {
|
if (e & IOEVENT_WRITE) {
|
||||||
if (!(ioevent->care_events & IOEVENT_WRITE)) {
|
|
||||||
EV_SET(&ev[n++], fd, EVFILT_WRITE, EV_ADD | ioevent->extra_events, 0, 0, data);
|
EV_SET(&ev[n++], fd, EVFILT_WRITE, EV_ADD | ioevent->extra_events, 0, 0, data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if ((ioevent->care_events & IOEVENT_WRITE)) {
|
else if ((ioevent->care_events & IOEVENT_WRITE)) {
|
||||||
EV_SET(&ev[n++], fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL);
|
EV_SET(&ev[n++], fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,16 +18,17 @@
|
||||||
|
|
||||||
#elif IOEVENT_USE_KQUEUE
|
#elif IOEVENT_USE_KQUEUE
|
||||||
#include <sys/event.h>
|
#include <sys/event.h>
|
||||||
|
#include <sys/poll.h>
|
||||||
#define IOEVENT_EDGE_TRIGGER EV_CLEAR
|
#define IOEVENT_EDGE_TRIGGER EV_CLEAR
|
||||||
|
|
||||||
#define KPOLLIN 0x001
|
#define KPOLLIN POLLIN
|
||||||
#define KPOLLPRI 0x002
|
#define KPOLLPRI POLLPRI
|
||||||
#define KPOLLOUT 0x004
|
#define KPOLLOUT POLLOUT
|
||||||
#define KPOLLERR 0x010
|
#define KPOLLERR POLLERR
|
||||||
#define KPOLLHUP 0x020
|
#define KPOLLHUP POLLHUP
|
||||||
#define IOEVENT_READ KPOLLIN
|
#define IOEVENT_READ KPOLLIN
|
||||||
#define IOEVENT_WRITE KPOLLOUT
|
#define IOEVENT_WRITE KPOLLOUT
|
||||||
#define IOEVENT_ERROR (KPOLLERR | KPOLLPRI | KPOLLHUP)
|
#define IOEVENT_ERROR (KPOLLERR | KPOLLHUP | POLLNVAL)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue