mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-17 08:17:42 -04:00
from trunk: check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards
svn:r631
This commit is contained in:
parent
d5aeeca0e8
commit
3d7ffbd995
@ -23,6 +23,7 @@ Changes in 1.4.1-beta:
|
|||||||
o removed linger from http server socket; reported by Ilya Martynov
|
o removed linger from http server socket; reported by Ilya Martynov
|
||||||
o Rewrite win32.c backend to be O(n lg n) rather than O(n^2)
|
o Rewrite win32.c backend to be O(n lg n) rather than O(n^2)
|
||||||
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-beta:
|
Changes in 1.4.0-beta:
|
||||||
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