On Sun, Mar 08, 2009 at 07:28:58PM -0400, Nick Mathewson wrote:
On Sat, Mar 07, 2009 at 01:45:21PM -0500, Thor Lancelot Simon wrote:
[...]
I see two ways to handle this. One is with very, very nasty application
logic, and the other is to simply set two separate events with the SSL
fd,
On Fri, Mar 20, 2009 at 7:45 AM, Thor Lancelot Simon t...@panix.com wrote:
The first way is what you have to do with Libevent 1.4.x and earlier;
Libevent only supports one _pending_ event at a time per fd/operation
pair. In other words, it's okay to have two events set to watch
EV_WRITE on
On Fri, Mar 20, 2009, Dan Kegel wrote:
Just to clarify: I can add two events, one for EV_READ and one for
EV_WRITE, on the same FD, with different callbacks, and that _will_
work as expected?
Even if that works, isn't it inefficient at the syscall level somehow?
It can be. For things
On Fri, Mar 20, 2009 at 07:46:51AM -0700, Dan Kegel wrote:
On Fri, Mar 20, 2009 at 7:45 AM, Thor Lancelot Simon t...@panix.com wrote:
The first way is what you have to do with Libevent 1.4.x and earlier;
Libevent only supports one _pending_ event at a time per fd/operation
pair. ?In other
On Fri, Mar 20, 2009 at 08:13:05AM -0700, Dan Kegel wrote:
On Fri, Mar 20, 2009 at 8:06 AM, Thor Lancelot Simon t...@panix.com wrote:
Just to clarify: I can add two events, one for EV_READ and one for
EV_WRITE, on the same FD, with different callbacks, and that _will_
work as expected?
On Fri, Mar 20, 2009, Thor Lancelot Simon wrote:
Try doing it under strace and see what happens.
I seem to recall it caused one epoll syscall per event
on each time around the event loop.
Ugh. That sounds like a terrible limitation of epoll. A syscall
_per event_?
Once again I'm
On Sat, Mar 07, 2009 at 01:45:21PM -0500, Thor Lancelot Simon wrote:
[...]
I see two ways to handle this. One is with very, very nasty application
logic, and the other is to simply set two separate events with the SSL
fd, each waiting on EV_WRITE. So when the SSL fd comes ready for write --
I'm trying to cope with OpenSSL's braindamaged nonblocking API
(my coworkers and I tend to call it the accidental programming interface)
in a libevent application. The application handles a bidirectional
data stream and, for simplicity's sake, maintains a small static buffer
in each direction,