]> git.meshlink.io Git - meshlink/commitdiff
Properly initialize mesh->outpacketqueue.
authorGuus Sliepen <guus@meshlink.io>
Thu, 9 Nov 2017 19:12:29 +0000 (20:12 +0100)
committerGuus Sliepen <guus@meshlink.io>
Thu, 9 Nov 2017 19:12:29 +0000 (20:12 +0100)
src/meshlink.c
src/meshlink_internal.h
src/meshlink_queue.h
src/net.h

index d4a5b2a4ef9e00f453f575bed743d82a1fbec97a..769e52c6e896c8021691fe678619a424ea8ddabb 100644 (file)
@@ -1013,6 +1013,8 @@ meshlink_handle_t *meshlink_open(const char *confbase, const char *name, const c
        event_loop_init(&mesh->loop);
        mesh->loop.data = mesh;
 
+       meshlink_queue_init(&mesh->outpacketqueue);
+
        // Check whether meshlink.conf already exists
 
        char filename[PATH_MAX];
index 15390253597f0c84afeff93f831455b8a4b443d2..a727bb539fa7ea08b9eb62ddd777d26cd6af877f 100644 (file)
@@ -76,7 +76,6 @@ struct meshlink_handle {
 
        pthread_t thread;
        bool threadstarted;
-       pthread_mutex_t outpacketqueue_mutex;
        pthread_mutex_t mesh_mutex;
        event_loop_t loop;
        listen_socket_t listen_socket[MAXSOCKETS];
index fc751a8fdd4abbdb2cf55c1fc2ff023468023350..996231807096dc878036492450b24b38c5ecf7ac 100644 (file)
@@ -36,6 +36,15 @@ typedef struct meshlink_queue_item {
        struct meshlink_queue_item *next;
 } meshlink_queue_item_t;
 
+static inline void meshlink_queue_init(meshlink_queue_t *queue) {
+       queue->head = NULL;
+       queue->tail = NULL;
+       pthread_mutexattr_t attr;
+       pthread_mutexattr_init(&attr);
+       pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_DEFAULT);
+       pthread_mutex_init(&queue->mutex, &attr);
+}
+
 static inline bool meshlink_queue_push(meshlink_queue_t *queue, void *data) {
        meshlink_queue_item_t *item = malloc(sizeof(*item));
 
index afefa17b683e9031c443de3f9b39fda67624965d..0ff313d0bdafd1d7f120082e46413629aad62ab0 100644 (file)
--- a/src/net.h
+++ b/src/net.h
@@ -110,8 +110,6 @@ extern void retry(struct meshlink_handle *mesh);
 
 #ifndef HAVE_MINGW
 #define closesocket(s) close(s)
-#else
-extern CRITICAL_SECTION mutex;
 #endif
 
 #endif