[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

RE: [Libevent-users] Proper socket shutdown.



Hi Nick,

> > Ok, so figured out a way to do this and it seems clean and works with
> the
> > select based backend but not the iocp based backend.  Basically I just
> set
> >
> > But, it does not seem to work on the IOCP version which seems a bit odd
> > since this should be handled at the OS level and automatically dealt
> with.
> > I'm fairly confident of the test code given it starts and stops
> event_base
> > 10 times, runs 1024 sockets through the connection, send/recv and
> shutdown
> > all without errors.
> >
> > I'll see if I can figure out the problem but it's been a while since I
> poked
> > the hornet's net which is IOCP...
> 
> Hi, Kelly, and thanks for checking that out.

	Just a note before the details.  I would suggest adding a little
section to the manual covering the proper method of handshaked shutdown.
It's just a minor thing but figuring out the watermark method is non-obvious
till you give it some further thought.  (Well, it was to me at the time,
then again it was 2am. :))

	Anywhere, here is a quick and dirty testbed for the problem.

http://pastebin.com/QF4N2DEw

	If you leave "USE_IOCP" set to 0 everything shuts down correctly.
If you turn that flag on though, the EOF's are never seen.  I just got this
test case functional so forgive the dirty leaky implementation if you will,
but please do check that I'm not just making some other stupid error as I'm
still getting used to 2.0 changes.  I'm sure there are other problems beyond
the test case in this code; I put it together relatively quickly by
extracting bits and pieces out of my C++ wrappers/abstraction.

> If you don't find the bug (or if you don't find a fix for the bug)
> right away, could you please post some test code to help reproduce and
> demonstrate it, either here or on the bugtracker?  (Send a link if
> it's long.)  This is the kind of thing we should get fixed in 2.0 if
> possible.

	I just got this functional so haven't started debugging.  If I
happen to find it in the next 30 minutes before I run out will post a fix,
if not I will be unlikely to get back to this till later tonight.

KB


***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.