char const *name; //!< debug name for printing
int fd; //!< file descriptor
+ int vnode_fd; //!< file descriptor for vnode_delete
fr_event_list_t *el; //!< for various timers
return -1;
}
+ inst->vnode_fd = fd;
+
return 0;
}
(void) fr_event_fd_delete(el, fd, FR_EVENT_FILTER_VNODE);
close(fd);
+ inst->vnode_fd = -1;
/*
* Re-initialize the state machine.
* "copy timer from -> to, which means we only have to
* delete our child event loop from the parent on close.
*/
-
close(inst->fd);
+
+ if (inst->vnode_fd >= 0) {
+ (void) fr_event_fd_delete(inst->el, inst->vnode_fd, FR_EVENT_FILTER_VNODE);
+ close(inst->vnode_fd);
+ }
+
return 0;
}