summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-04-16 11:09:15 +0200
committerSimon Rettberg2018-04-16 11:09:15 +0200
commitba4dcd90fb14e72d9e672f62228c03ddd3a9dc3a (patch)
tree16cd3d5d8aa449f0bc01b291c5500a708240305e
parent[SERVER] Add bgrMinClients: Thresold to control when BGR starts (diff)
downloaddnbd3-ba4dcd90fb14e72d9e672f62228c03ddd3a9dc3a.tar.gz
dnbd3-ba4dcd90fb14e72d9e672f62228c03ddd3a9dc3a.tar.xz
dnbd3-ba4dcd90fb14e72d9e672f62228c03ddd3a9dc3a.zip
[SERVER] Acquire write lock before initializing array
-rw-r--r--src/server/altservers.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/altservers.c b/src/server/altservers.c
index 27fb27e..4a2b8d5 100644
--- a/src/server/altservers.c
+++ b/src/server/altservers.c
@@ -36,10 +36,14 @@ void altservers_init()
logadd( LOG_ERROR, "Could not start altservers connector thread" );
exit( EXIT_FAILURE );
}
- // Init waiting links queue
+ // Init waiting links queue -- this is currently a global static array so
+ // it will already be zero, but in case we refactor later do it explicitly
+ // while also holding the write lock so thread sanitizer is happy
+ spin_lock( &pendingLockWrite );
for (int i = 0; i < SERVER_MAX_PENDING_ALT_CHECKS; ++i) {
pending[i] = NULL;
}
+ spin_unlock( &pendingLockWrite );
initDone = true;
}