- int ret = epoll_wait(ep_fd, events, num_sockets_per_sender, -1);
- for (i = 0; i < ret; ++i) {
- unsigned bytes_to_send = events[i].data.u64;
+ int num_active = epoll_wait(ep_fd, events, num_sockets_per_sender, -1);
+ if (num_active == -1) {
+ perror("epoll_wait");
+ exit(1);
+ }
+
+ for (i = 0; i < num_active; ++i) {
+ struct sender *s = (struct sender *)events[i].data.ptr;
+ unsigned long long bytes_to_send = s->bytes_left;