Reorder fields of client_t for better packing and cache utilization.
authorTilman Sauerbeck <tilman@code-monkey.de>
Thu, 28 Dec 2017 13:00:18 +0000 (14:00 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Thu, 28 Dec 2017 13:00:18 +0000 (14:00 +0100)
src/client.h

index f5346bf8b68d858d220fcdb2bd539fd7db22327b..6f8aa39d789007701eb22bac3b2471d2c0f4f96a 100644 (file)
 struct channel;
 
 typedef struct {
-       int tcpfd;
        SSL_handle_t *ssl;
-       bool_t SSLready;
-       bool_t shutdown_wait;
-       cryptState_t cryptState;
-       bool_t readBlockedOnWrite, writeBlockedOnRead;
-       struct sockaddr_storage remote_tcp;
-       struct sockaddr_storage remote_udp;
-       uint8_t rxbuf[BUFSIZE], txbuf[BUFSIZE];
-       uint32_t rxcount, msgsize, drainleft, txcount, txsize;
-       int sessionId;
-       uint8_t key[KEY_LENGTH];
+       struct dlist node;
        char *username;
-       bool_t bUDP, authenticated, deaf, mute, self_deaf, self_mute, recording, bOpus;
        char *os, *release, *os_version;
+       uint32_t rxcount, msgsize, drainleft, txcount, txsize;
+       int sessionId;
        uint32_t version;
        int codec_count;
        struct dlist codecs;
-       int availableBandwidth;
        etimer_t lastActivity, connectTime, idleTime;
-       struct dlist node;
        struct dlist txMsgQueue;
        int txQueueCount;
+       int availableBandwidth;
        struct channel *channel;
        char *context;
        struct dlist chan_node;
        struct dlist voicetargets;
        struct dlist tokens;
        int tokencount;
-       uint8_t hash[20];
-       bool_t isAdmin;
-       bool_t isSuppressed;
+       int tcpfd;
        float UDPPingAvg, UDPPingVar, TCPPingAvg, TCPPingVar;
        uint32_t UDPPackets, TCPPackets;
+
+       bool_t SSLready;
+       bool_t shutdown_wait;
+       bool_t readBlockedOnWrite, writeBlockedOnRead;
+       bool_t bUDP, authenticated, deaf, mute, self_deaf, self_mute, recording, bOpus;
+       bool_t isAdmin;
+       bool_t isSuppressed;
+
+       struct sockaddr_storage remote_tcp;
+       struct sockaddr_storage remote_udp;
+
+       uint8_t key[KEY_LENGTH];
+       uint8_t hash[20];
+       cryptState_t cryptState;
+       uint8_t rxbuf[BUFSIZE], txbuf[BUFSIZE];
 } client_t;
 
 typedef struct {