int fd;
int rwx; /* 4=except 2=write 1=read */
uxsel_callback_fn callback;
+ int id; /* for uxsel_input_remove */
};
static tree234 *fds;
oldfd = find234(fds, newfd, NULL);
if (oldfd) {
+ uxsel_input_remove(oldfd->id);
del234(fds, oldfd);
sfree(oldfd);
}
add234(fds, newfd);
+ newfd->id = uxsel_input_add(fd, rwx);
}
void uxsel_del(int fd)
{
struct fd *oldfd = find234(fds, &fd, uxsel_fd_findcmp);
if (oldfd) {
+ uxsel_input_remove(oldfd->id);
del234(fds, oldfd);
sfree(oldfd);
}