mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
libevent: enforce no event state duplication
https://github.com/warmcat/libwebsockets/issues/1956
This commit is contained in:
parent
44ead6a42c
commit
c930daeaa0
3 changed files with 15 additions and 5 deletions
|
@ -327,7 +327,7 @@ set(PACKAGE "libwebsockets")
|
|||
set(CPACK_PACKAGE_NAME "${PACKAGE}")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "4")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "16")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "17")
|
||||
set(CPACK_PACKAGE_RELEASE 1)
|
||||
set(CPACK_GENERATOR "RPM")
|
||||
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
||||
|
|
|
@ -197,6 +197,7 @@ elops_init_pt_event(struct lws_context *context, void *_loop, int tsi)
|
|||
(EV_READ | EV_PERSIST), lws_event_cb,
|
||||
&vh->lserv_wsi->w_read);
|
||||
event_add(vh->lserv_wsi->w_read.event.watcher, NULL);
|
||||
vh->lserv_wsi->w_read.event.set = 1;
|
||||
}
|
||||
vh = vh->vhost_next;
|
||||
}
|
||||
|
@ -274,17 +275,25 @@ elops_io_event(struct lws *wsi, int flags)
|
|||
(flags & (LWS_EV_READ | LWS_EV_WRITE)));
|
||||
|
||||
if (flags & LWS_EV_START) {
|
||||
if (flags & LWS_EV_WRITE)
|
||||
if ((flags & LWS_EV_WRITE) && !wsi->w_write.event.set) {
|
||||
event_add(wsi->w_write.event.watcher, NULL);
|
||||
wsi->w_write.event.set = 1;
|
||||
}
|
||||
|
||||
if (flags & LWS_EV_READ)
|
||||
if ((flags & LWS_EV_READ) && !wsi->w_read.event.set) {
|
||||
event_add(wsi->w_read.event.watcher, NULL);
|
||||
wsi->w_read.event.set = 1;
|
||||
}
|
||||
} else {
|
||||
if (flags & LWS_EV_WRITE)
|
||||
if ((flags & LWS_EV_WRITE) && wsi->w_write.event.set) {
|
||||
event_del(wsi->w_write.event.watcher);
|
||||
wsi->w_write.event.set = 0;
|
||||
}
|
||||
|
||||
if (flags & LWS_EV_READ)
|
||||
if ((flags & LWS_EV_READ) && wsi->w_read.event.set) {
|
||||
event_del(wsi->w_read.event.watcher);
|
||||
wsi->w_read.event.set = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ struct lws_pt_eventlibs_libevent {
|
|||
|
||||
struct lws_io_watcher_libevent {
|
||||
struct event *watcher;
|
||||
char set;
|
||||
};
|
||||
|
||||
struct lws_signal_watcher_libevent {
|
||||
|
|
Loading…
Add table
Reference in a new issue