Displaying 4 results from an estimated 4 matches for "ev_eof".
2006 May 09
2
Fix for the kevent "Unrecognized event" problem.
The attached patch should fix the problem with dying imap on
"Unrecognized event". The problem is that when we register a handle for
IO_ERROR only, we still can get readable/writable event without EV_EOF
being set. This case was not handled.
--
Vaclav Haisman
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: io-kq.diff
URL: <http://dovecot.org/pipermail/dovecot/attachments/20060509/023b4df1/attachment.pl>
-------------- next part ---------...
2004 Oct 25
0
[PATCH] Request for testing: BSD kqueue ioloop handler
...ts,
+ sizeof(int) * old_size,
+ sizeof(int) * data->events_size);
+ }
+ data->events_pos++;
+
+ iolist_add(list, io);
+
+ event = data->events + data->events_changed;
+ data->events_changed++;
+
+ EV_SET(event, fd, iolist_events(list, EVFILT_READ, EVFILT_WRITE),
+ EV_ADD | EV_EOF, 0, 0, io);
+}
+
+void io_loop_handle_remove(struct ioloop *ioloop, struct io *io)
+{
+ struct ioloop_handler_data *data = ioloop->handler_data;
+ struct io_list *list = data->fd_index[io->fd];
+ struct kevent *event;
+ int i, changed = data->events_changed;
+
+ iolist_del(list,...
2005 Dec 15
2
Patch: More of kqueue() support.
...->fds);
p_free(ioloop->pool, ioloop->handler_context);
@@ -66,8 +70,8 @@ void io_loop_handle_add(struct ioloop *i
{
struct ioloop_handler_context *ctx = ioloop->handler_context;
const int fd = io->fd;
- struct kevent ev = {fd, 0, EV_ADD | EV_CLEAR | EV_EOF, 0, 0, NULL};
- enum io_condition condition = io->condition;
+ struct kevent ev = { fd, 0, EV_ADD | EV_EOF, 0, 0, NULL };
+ enum io_condition condition = io->condition & MASK;
/* grow ctx->fds array if necessary */
if ((size_t)fd >= ctx->f...
2005 Dec 14
2
Patch: ioloop using kqueue/kevent for FreeBSD
...t;handler_context->fds);
+ p_free(ioloop->pool, ioloop->handler_context);
+}
+
+
+void io_loop_handle_add(struct ioloop *ioloop, struct io *io)
+{
+ struct ioloop_handler_context *ctx = ioloop->handler_context;
+ struct kevent ev = {io->fd, 0, EV_ADD | EV_CLEAR | EV_EOF, 0, 0, io};
+ enum io_condition condition = io->condition;
+
+ /* grow ctx->fds array if necessary */
+ if ((size_t)io->fd >= ctx->fds_size) {
+ size_t old_size = ctx->fds_size;
+
+ ctx->fds_size = nearest_power((unsigned int)i...