mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-13 06:16:10 -04:00
EAGAIN check for event ports; from Wijngaards
svn:r629
This commit is contained in:
parent
8c66d4e289
commit
6baff52296
@ -35,6 +35,7 @@ Changes in current version:
|
|||||||
o allow association of meta data with RPC requests for hook processing
|
o allow association of meta data with RPC requests for hook processing
|
||||||
o associate more context for hooks to query such as the connection object
|
o associate more context for hooks to query such as the connection object
|
||||||
o remove pending timeouts on event_base_free()
|
o remove pending timeouts on event_base_free()
|
||||||
|
o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards
|
||||||
|
|
||||||
Changes in 1.4.0:
|
Changes in 1.4.0:
|
||||||
o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
|
o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
|
||||||
|
4
evport.c
4
evport.c
@ -234,10 +234,8 @@ static int
|
|||||||
grow(struct evport_data *epdp, int factor)
|
grow(struct evport_data *epdp, int factor)
|
||||||
{
|
{
|
||||||
struct fd_info *tmp;
|
struct fd_info *tmp;
|
||||||
struct fd_info *old = epdp->ed_fds;
|
|
||||||
int oldsize = epdp->ed_nevents;
|
int oldsize = epdp->ed_nevents;
|
||||||
int newsize = factor * oldsize;
|
int newsize = factor * oldsize;
|
||||||
int ii;
|
|
||||||
assert(factor > 1);
|
assert(factor > 1);
|
||||||
|
|
||||||
check_evportop(epdp);
|
check_evportop(epdp);
|
||||||
@ -332,7 +330,7 @@ evport_dispatch(struct event_base *base, void *arg, struct timeval *tv)
|
|||||||
|
|
||||||
if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN,
|
if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN,
|
||||||
(unsigned int *) &nevents, ts_p)) == -1) {
|
(unsigned int *) &nevents, ts_p)) == -1) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR || errno == EAGAIN) {
|
||||||
evsignal_process(base);
|
evsignal_process(base);
|
||||||
return (0);
|
return (0);
|
||||||
} else if (errno == ETIME) {
|
} else if (errno == ETIME) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user