diff options
| author | Benoit Germain <benoit.germain@ubisoft.com> | 2025-04-28 11:17:48 +0200 |
|---|---|---|
| committer | Benoit Germain <benoit.germain@ubisoft.com> | 2025-04-28 11:17:48 +0200 |
| commit | a86327245eea5638b933aec795026699201c19e1 (patch) | |
| tree | f8d03b6abc1d0d215dd38852d1c018e8b4e84f62 /src/keeper.cpp | |
| parent | d93a433732c5ca72923100f5ab8139a8a5f072b6 (diff) | |
| download | lanes-a86327245eea5638b933aec795026699201c19e1.tar.gz lanes-a86327245eea5638b933aec795026699201c19e1.tar.bz2 lanes-a86327245eea5638b933aec795026699201c19e1.zip | |
Minor internal tweaks in shutdown code
Diffstat (limited to 'src/keeper.cpp')
| -rw-r--r-- | src/keeper.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/keeper.cpp b/src/keeper.cpp index c8c470f..ca2a80d 100644 --- a/src/keeper.cpp +++ b/src/keeper.cpp | |||
| @@ -952,15 +952,15 @@ void Keepers::collectGarbage() | |||
| 952 | // ################################################################################################# | 952 | // ################################################################################################# |
| 953 | 953 | ||
| 954 | 954 | ||
| 955 | void Keepers::close() | 955 | bool Keepers::close() |
| 956 | { | 956 | { |
| 957 | if (isClosing.test_and_set(std::memory_order_release)) { | 957 | if (isClosing.test_and_set(std::memory_order_release)) { |
| 958 | assert(false); // should never close more than once in practice | 958 | return false; // should never close more than once in practice |
| 959 | return; | ||
| 960 | } | 959 | } |
| 961 | 960 | ||
| 961 | // We may have not initialized the keepers if an error was raised in Universe::Create because of bad settings | ||
| 962 | if (std::holds_alternative<std::monostate>(keeper_array)) { | 962 | if (std::holds_alternative<std::monostate>(keeper_array)) { |
| 963 | return; | 963 | return true; |
| 964 | } | 964 | } |
| 965 | 965 | ||
| 966 | auto _closeOneKeeper = [](Keeper& keeper_) { | 966 | auto _closeOneKeeper = [](Keeper& keeper_) { |
| @@ -989,6 +989,7 @@ void Keepers::close() | |||
| 989 | } | 989 | } |
| 990 | 990 | ||
| 991 | keeper_array.emplace<std::monostate>(); | 991 | keeper_array.emplace<std::monostate>(); |
| 992 | return true; | ||
| 992 | } | 993 | } |
| 993 | 994 | ||
| 994 | // ################################################################################################# | 995 | // ################################################################################################# |
