+ struct writer_node_group *wng = wn->wng;
+
+ pfwd->check_fd = 0;
+ if (pfwd->fd <= 0)
+ return -E_FW_NO_FILE;
+ if (!*wng->loaded)
+ return 1;
+ para_fd_set(pfwd->fd, &s->wfds, &s->max_fileno);
+ pfwd->check_fd = 1;
+ return 1;
+}
+
+static int file_writer_post_select(struct sched *s, struct writer_node *wn)
+{
+ struct private_file_writer_data *pfwd = wn->private_data;
+ struct writer_node_group *wng = wn->wng;
+ int ret;
+
+ if (!pfwd->check_fd)
+ return 1;
+ if (*wng->loaded <= wn->written)
+ return 1;
+ if (!FD_ISSET(pfwd->fd, &s->wfds))
+ return 1;
+// PARA_INFO_LOG("writing %zd\n", *wng->loaded);
+ ret = write(pfwd->fd, wng->buf + wn->written,
+ *wng->loaded - wn->written);