struct list_head node;
};
-static struct list_head client_list;
-static int client_list_initialized;
+static LIST_HEAD(client_list);
static int num_clients;
/** The list of all status items used by para_{server,audiod,gui}. */
{
struct stat_client *sc;
- if (!client_list_initialized)
- return;
list_for_each_entry(sc, &client_list, node)
PARA_INFO_LOG("stat client on fd %d\n", sc->fd);
}
MAX_STAT_CLIENTS);
return -E_TOO_MANY_CLIENTS;
}
- if (!client_list_initialized) {
- INIT_LIST_HEAD(&client_list);
- client_list_initialized = 1;
- }
PARA_INFO_LOG("adding client on fd %d\n", fd);
new_client = para_calloc(sizeof(struct stat_client));
new_client->fd = fd;
struct para_buffer pfpb = {.flags = PBF_SIZE_PREFIX};
const uint64_t one = 1;
- if (!client_list_initialized)
- return;
list_for_each_entry_safe(sc, tmp, &client_list, node) {
int fd = sc->fd, ret;
struct list_head *prev;
};
+/** Define an initialized list head. */
+#define LIST_HEAD(name) struct list_head name = { &(name), &(name) }
+
+
/** must be called before using any other list functions */
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \