audiod: kill close_writer()
[paraslash.git] / stat.c
diff --git a/stat.c b/stat.c
index e3773df..9def507 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -25,6 +25,7 @@
 #include "list.h"
 #include "error.h"
 #include "string.h"
+#include "fd.h"
 
 /** the maximal number of simultaneous connections */
 #define MAX_STAT_CLIENTS 50
@@ -161,10 +162,8 @@ void stat_client_write(char *msg, int itemnum)
                FD_ZERO(&wfds);
                FD_SET(fd, &wfds);
 //             PARA_DEBUG_LOG("%s: p=%lx\n", __func__, (long)p);
-               do
-                       ret = select(fd + 1, NULL, &wfds, NULL, &tv);
-               while (ret < 0 && errno == EINTR);
-               if (ret) {
+               ret = para_select(fd + 1, NULL, &wfds, &tv);
+               if (ret > 0) {
                        ret = write(fd, msg, len);
                        PARA_DEBUG_LOG("dumped %s to fd %d, ret = %d\n", msg, fd, ret);
                        if (ret == len )
@@ -212,8 +211,10 @@ void dump_empty_status(void)
 int stat_item_valid(const char *item)
 {
        int i;
-       if (!item || !*item)
+       if (!item || !*item) {
+       PARA_ERROR_LOG("%s\n", "no item");
                return -E_UNKNOWN_STAT_ITEM;
+       }
        FOR_EACH_STAT_ITEM(i)
                if (!strcmp(status_item_list[i], item))
                        return i;
@@ -268,6 +269,7 @@ unsigned for_each_line(char *buf, int n, void (*line_handler)(char *))
        char *start = buf, *end;
        int i, num_lines = 0;
 
+//     PARA_INFO_LOG("buf: %s", buf);
        while (start < buf + n) {
                char *next_null;
                char *next_cr;
@@ -285,6 +287,7 @@ unsigned for_each_line(char *buf, int n, void (*line_handler)(char *))
                num_lines++;
                if (line_handler) {
                        *end = '\0';
+//                     PARA_INFO_LOG("calling line handler: %s\n", start);
                        line_handler(start);
                        start = ++end;
                } else