simplify osx_write_pre_select()
[paraslash.git] / send.h
diff --git a/send.h b/send.h
index 75c13731bb1af9223a0a32fdc8c85792f04f3d50..76a35123c8b5b414b45eec935a525e8d906ae22a 100644 (file)
--- a/send.h
+++ b/send.h
@@ -45,8 +45,8 @@ struct sender {
  * command. Of course, \a buf is a pointer to the chunk of data which
  * should be sent, and \a len is the length of this buffer.
 */
-       void (*send)(struct audio_format *af, long unsigned current_chunk,
-               long unsigned chunks_sent, const char *buf, size_t len);
+       void (*send)(long unsigned current_chunk, long unsigned chunks_sent,
+               const char *buf, size_t len);
 /** add file descriptors to fd_sets
  *
  * The pre_select function of each supported sender is called just before
@@ -58,8 +58,7 @@ struct sender {
  *
  * \sa select(2)
 */
-       void (*pre_select)(struct audio_format *af, int *max_fileno, fd_set *rfds,
-               fd_set *wfds);
+       void (*pre_select)(int *max_fileno, fd_set *rfds, fd_set *wfds);
 /**
  * handle the file descriptors which are ready for I/O
  *
@@ -67,7 +66,7 @@ struct sender {
  * set, this is the hook to check the result and do any I/O on those descriptors
  * which are ready for reading/writing.
  */
-       void (*post_select)(struct audio_format *af, fd_set *rfds, fd_set *wfds);
+       void (*post_select)(fd_set *rfds, fd_set *wfds);
 /**
  * terminate all connected clients
  *
@@ -85,9 +84,16 @@ struct sender {
        int (*client_cmds[NUM_SENDER_CMDS])(struct sender_command_data*);
 };
 
+/**
+ * check a file descriptor for writability
+ *
+ * \param fd the file desctiptor
+ *
+ * \return positive if fd is ready for writing, zero if it isn't, negative if
+ * an error occured.
+ */
 
-
-static inline int _write_ok(int fd)
+static inline int write_ok(int fd)
 {
        struct timeval tv = {0, 0};
        fd_set wfds;
@@ -95,11 +101,10 @@ static inline int _write_ok(int fd)
 again:
        FD_ZERO(&wfds);
        FD_SET(fd, &wfds);
+       tv.tv_sec = 0;
+       tv.tv_usec = 0;
        ret = select(fd + 1, NULL, &wfds, NULL, &tv);
        if (ret < 0 && errno == EINTR)
                goto again;
-       if (ret < 0)
-               ret = 0;
        return ret;
 }
-