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

[Libevent-users] Read failures on Unix socket



I have a simple piece of code which used to work with libevent 1.4 and now
fails with 2.x

The basic operation
- Open a Unix socket
- Bind to a socket in the file system
- Add an event with EV_READ and EV_PERSIST
- Wait for events
- When an event arrives, call recvfrom on the socket waiting for a fixed
size of ~1800 bytes

(just to avoid confusion with previous problems I had, no "dup" calls are
involved)

My initial problem was that the recvfrom call was hanging.
I tried different solutions, with different outcomes
- Trying to set my socket as non blocking leads to endless triggering of the
event, where an attempt to read from the socket doesn't show a single byte
- Trying with libevent 2.0.8 (rather than 2.0.7) didn't change anything
- Trying with 2.0.8, along with the non blocking socket also leads to events
with nothing on the socket, though these are much less frequent.
- Trying the (un-changed) code with select rather than epoll does seem to
work

How can I resolve this, without backing away from epoll ?

Thanks






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