From cfa9120ccc9ec3ed821d0c9e44382f92e963ac22 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 14 Apr 2019 21:22:24 +0200 Subject: [PATCH] Use newflag instead of .new booleans to avoid needing a further lock Signed-off-by: DL6ER --- resolve.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/resolve.c b/resolve.c index 80ad74f2c..2754260de 100644 --- a/resolve.c +++ b/resolve.c @@ -113,14 +113,14 @@ void resolveClients(bool onlynew) // Memory access needs to get locked lock_shm(); - bool newlock = clients[clientID].new; + bool newflag = clients[clientID].new; size_t ippos = clients[clientID].ippos; size_t oldnamepos = clients[clientID].namepos; unlock_shm(); // If onlynew flag is set, we will only resolve new clients // If not, we will try to re-resolve all known clients - if(onlynew && !newlock) + if(onlynew && !newflag) continue; // Obtain/update hostname of this client @@ -132,11 +132,12 @@ void resolveClients(bool onlynew) lock_shm(); clients[clientID].namepos = newnamepos; clients[clientID].new = false; + newflag = false; unlock_shm(); } // Mark entry as not new even when we don't have a new host name - if(clients[clientID].new) + if(newflag) { lock_shm(); clients[clientID].new = false; @@ -178,11 +179,12 @@ void resolveForwardDestinations(bool onlynew) lock_shm(); forwarded[forwardID].namepos = newnamepos; forwarded[forwardID].new = false; + newflag = false; unlock_shm(); } // Mark entry as not new - if(forwarded[forwardID].new) + if(newflag) { lock_shm(); forwarded[forwardID].new = false;