prevent use of reserved semaphore indexes

This commit is contained in:
wish
2022-08-14 19:03:11 +10:00
parent d7cc7ab5e3
commit 7a303d6e31

View File

@@ -154,7 +154,7 @@ func NewServer(config *Config) *Server {
stages: make(map[string]*Stage), stages: make(map[string]*Stage),
userBinaryParts: make(map[userBinaryPartID][]byte), userBinaryParts: make(map[userBinaryPartID][]byte),
semaphore: make(map[string]*Semaphore), semaphore: make(map[string]*Semaphore),
semaphoreIndex: 5, semaphoreIndex: 7,
discordBot: config.DiscordBot, discordBot: config.DiscordBot,
name: config.Name, name: config.Name,
enable: config.Enable, enable: config.Enable,
@@ -413,6 +413,9 @@ func (s *Server) NextSemaphoreID() uint32 {
for { for {
exists := false exists := false
s.semaphoreIndex = s.semaphoreIndex + 1 s.semaphoreIndex = s.semaphoreIndex + 1
if s.semaphoreIndex == 0 {
s.semaphoreIndex = 7 // Skip reserved indexes
}
for _, semaphore := range s.semaphore { for _, semaphore := range s.semaphore {
if semaphore.id == s.semaphoreIndex { if semaphore.id == s.semaphoreIndex {
exists = true exists = true