Nie możesz wybrać więcej, niż 25 tematów
Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
|
- // +build !windows
-
- // Copyright 2019 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package graceful
-
- import "sync"
-
- var cleanupWaitGroup sync.WaitGroup
-
- func init() {
- cleanupWaitGroup = sync.WaitGroup{}
-
- // There are three places that could inherit sockets:
- //
- // * HTTP or HTTPS main listener
- // * HTTP redirection fallback
- // * SSH
- //
- // If you add an additional place you must increment this number
- // and add a function to call InformCleanup if it's not going to be used
- cleanupWaitGroup.Add(3)
-
- // Wait till we're done getting all of the listeners and then close
- // the unused ones
- go func() {
- cleanupWaitGroup.Wait()
- // Ignore the error here there's not much we can do with it
- // They're logged in the CloseProvidedListeners function
- _ = CloseProvidedListeners()
- }()
- }
-
- // InformCleanup tells the cleanup wait group that we have either taken a listener
- // or will not be taking a listener
- func InformCleanup() {
- cleanupWaitGroup.Done()
- }
|