|
5c142a7e
|
2014-01-21T14:53:47
|
|
Merge remote-tracking branch 'origin/pr/98'
|
|
b1b69ac7
|
2014-01-17T23:20:42
|
|
Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
- Added new EV_CLOSED event - detects premature connection close
by clients without the necessity of reading all the pending
data. Does not depend on EV_READ and/or EV_WRITE.
- Added new EV_FEATURE_EARLY_CLOSED feature for epoll.
Must be supported for listening to EV_CLOSED event.
- Added new regression test: test-closed.c
- All regression tests passed (test/regress and test/test.sh)
- strace output of test-closed using EV_CLOSED:
socketpair(PF_LOCAL, SOCK_STREAM, 0, [6, 7]) = 0
sendto(6, "test string\0", 12, 0, NULL, 0) = 12
shutdown(6, SHUT_WR) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLRDHUP, {u32=7, u64=7}}) = 0
epoll_wait(3, {{EPOLLRDHUP, {u32=7, u64=7}}}, 32, 3000) = 1
epoll_ctl(3, EPOLL_CTL_MOD, 7, {EPOLLRDHUP, {u32=7, u64=7}}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...})
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYM...
write(1, "closed_cb: detected connection close "..., 45) = 45
|
|
24d64666
|
2014-01-14T17:53:47
|
|
Fix so that old nmake project still builds.
|
|
8ab612e3
|
2013-05-11T22:21:30
|
|
Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
|
|
5ba8ab76
|
2013-05-10T21:38:26
|
|
Fix test compilation with nmake: add the gdi.lib dependency
ACK: efekty
|
|
85a40040
|
2013-05-01T13:37:57
|
|
Add regress_finalize to makefile.nmake
|
|
72965126
|
2013-02-07T17:06:49
|
|
a program to print out the error strings for winsock errors
|
|
974bfa07
|
2013-02-07T17:14:18
|
|
remove all exes on "make clean", not just regress.exe
|
|
eba0eb2e
|
2012-06-08T19:47:23
|
|
attempt to support OpenSSL in Makefile.nmake
|
|
33124033
|
2011-06-14T15:15:43
|
|
Merge remote-tracking branch 'origin/patches-2.0'
|
|
b031adf1
|
2011-06-14T14:37:49
|
|
Don't break when building tests from git without python installed
|
|
d41f3ea2
|
2011-05-25T19:54:44
|
|
Do not define WIN32 in Makefile.nmake
|
|
4ebf9509
|
2010-10-14T14:40:40
|
|
Fixes for MSVC compilation
|
|
041989fb
|
2010-08-17T14:44:12
|
|
Rename regress_pthread.c to regress_thread.c
|
|
4022b287
|
2010-08-13T11:34:39
|
|
Change include order in Makefile.nmake
If there is an event-config.h in include/event2 (either because we
screwed up packaging like in 2.0.6-rc or because we previously tried
building with mingw and we didn't make distclean in the middle), we
want MSVC to find the one one in WIN32-Code/include/event2 first.
Found by Gilad Benjamini.
|
|
cf249e7d
|
2010-07-19T13:44:56
|
|
Possible fix to 100% cpu usage with epoll and openssl
I'm running a fairly simple bit of test code using libevent2 with epoll and
openssl bufferevents and I've run into a 100% cpu usage problem.
Looking into it 100% usage was caused by epoll_wait constantly
returning write events on the openssl socket when it shouldn't really have
been looking for write events at all (N_ACTIVE_CALLBACKS() was returning 0
also).
Looking a bit deeper eventbuffer_openssl socket seems to be requesting
that the EV_WRITE event be removed when it should, but the event isn't
actually being removed from epoll.
Continuing to follow this I think I've found a bug in
event_changelist_del.
For evpoll event_del calls event_changelist_del which caches the change
which is then actioned later when evpoll_dispatch is called.
In event_changlist_del there is a check so that if the currently changed
action is an add then the cached action is changed to a no-op rather than a
delete (which makes sense). The problem arises if there are more than
two add or delete operations between calls to dispatch, in this case it's
possible that the delete is turned into a no-op when it shouldn't have
been.
For example starting with the event on, a delete followed by an add and
then another delete results in a no-op when it should have been a delete (I
added a fair bit of debug output that seems to confirm this behaviour).
I've applied a small change that checks the original old_event stored with
the change and only converts the delete to a no-op if the event isn't on in
old_event. This seems to have fixed my problem.
|
|
5c7a7bca
|
2010-01-23T20:07:05
|
|
Fix windows and msvc build
|
|
b8226390
|
2010-01-14T16:53:25
|
|
move dns utility functions into a separate file so that we can use them for http testing
|
|
4ca9efea
|
2009-11-05T20:40:11
|
|
Add nmake files to build with MSVC.
Right now, they just make static libraries and unit tests. They probably set lots of options wrong.
svn:r1507
|