typedef struct fr_listen fr_listen_t;
struct fr_listen {
fr_app_io_t const *app_io; //!< I/O path functions.
- void *app_io_instance; //!< I/O path specific context.
+ void *app_io_instance; //!< I/O path configuration context.
+ void *thread_instance; //!< thread / socket context
fr_app_t const *app;
void const *app_instance;
app_io = s->listen->app_io;
rad_assert(app_io->fd);
- s->fd = app_io->fd(s->listen->app_io_instance, NULL);
+ s->fd = app_io->fd(s->listen->app_io_instance, s->listen->thread_instance);
s->filter = FR_EVENT_FILTER_IO;
if (fr_event_fd_insert(nr, nr->el, s->fd,
if (app_io->event_list_set) app_io->event_list_set(s->listen->app_io_instance, nr->el, nr);
rad_assert(app_io->fd);
- s->fd = app_io->fd(s->listen->app_io_instance, NULL);
+ s->fd = app_io->fd(s->listen->app_io_instance, s->listen->thread_instance);
s->filter = FR_EVENT_FILTER_VNODE;
if (fr_event_filter_insert(nr, nr->el, s->fd, s->filter,