|
|
|
@ -8,6 +8,7 @@ |
|
|
|
#include <assert.h> |
|
|
|
#include <errno.h> |
|
|
|
#include <sys/epoll.h> |
|
|
|
#include <glib.h> |
|
|
|
|
|
|
|
#include "poller.h" |
|
|
|
#include "aux.h" |
|
|
|
@ -77,7 +78,7 @@ int poller_add_item(struct poller *p, struct poller_item *i) { |
|
|
|
memset(p->items + u, 0, sizeof(*p->items) * (p->items_size - u - 1)); |
|
|
|
} |
|
|
|
|
|
|
|
ip = malloc(sizeof(*ip)); |
|
|
|
ip = g_slice_alloc(sizeof(*ip)); |
|
|
|
memcpy(ip, i, sizeof(*ip)); |
|
|
|
p->items[i->fd] = ip; |
|
|
|
|
|
|
|
@ -96,7 +97,7 @@ int poller_del_item(struct poller *p, int fd) { |
|
|
|
if (epoll_ctl(p->fd, EPOLL_CTL_DEL, fd, NULL)) |
|
|
|
abort(); |
|
|
|
|
|
|
|
free(p->items[fd]); |
|
|
|
g_slice_free1(sizeof(**p->items), p->items[fd]); |
|
|
|
p->items[fd] = NULL; |
|
|
|
|
|
|
|
return 0; |
|
|
|
@ -265,8 +266,7 @@ int poller_timer(struct poller *p, void (*f)(void *), void *ptr) { |
|
|
|
if (!p || !f) |
|
|
|
return -1; |
|
|
|
|
|
|
|
i = malloc(sizeof(*i)); |
|
|
|
ZERO(*i); |
|
|
|
i = g_slice_alloc0(sizeof(*i)); |
|
|
|
|
|
|
|
i->func = f; |
|
|
|
i->ptr = ptr; |
|
|
|
|