]> git.lizzy.rs Git - dragonnet.git/blobdiff - recv_thread.c
Correct mutex allocation
[dragonnet.git] / recv_thread.c
index a0ee5c6f1b604f0c2eb01e004341197cf3ed6490..9a85d94b698bce7f16c681b107b9df1362959529 100644 (file)
@@ -12,17 +12,17 @@ void *dragonnet_peer_recv_thread(void *g_peer)
 {
        DragonnetPeer *p = (DragonnetPeer *) g_peer;
 
-       pthread_rwlock_wrlock(p->mu);
+       pthread_rwlock_wrlock(&p->mu);
        assert(p->state == DRAGONNET_PEER_CREATED);
        p->state++;
-       pthread_rwlock_unlock(p->mu);
+       pthread_rwlock_unlock(&p->mu);
 
        while (true) {
                uint16_t msg;
 
-               pthread_rwlock_rdlock(p->mu);
+               pthread_rwlock_rdlock(&p->mu);
                ssize_t len = recv(p->sock, &msg, sizeof msg, MSG_WAITALL);
-               pthread_rwlock_unlock(p->mu);
+               pthread_rwlock_unlock(&p->mu);
 
                if (len < 0 && errno != EWOULDBLOCK) {
                        perror("recv");
@@ -32,13 +32,13 @@ void *dragonnet_peer_recv_thread(void *g_peer)
 
                // connection closed
                if ((len >= 0 && len != sizeof msg) || errno == EWOULDBLOCK) {
-                       pthread_rwlock_wrlock(p->mu);
+                       pthread_rwlock_wrlock(&p->mu);
 
                        close(p->sock);
                        p->sock = 0;
                        p->state++;
 
-                       pthread_rwlock_unlock(p->mu);
+                       pthread_rwlock_unlock(&p->mu);
                        return NULL;
                }