| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 1579ff4 commit f84de0a
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -431,7 +431,13 @@ void ResetSignalHandlers() { | |||
| 431 | 431 | #endif // __POSIX__ | |
| 432 | 432 | } | |
| 433 | 433 | ||
| 434 | + // We use uint32_t since that can be accessed as a lock-free atomic | ||
| 435 | + // variable on all platforms that we support, which we require in | ||
| 436 | + // order for its value to be usable inside signal handlers. | ||
| 434 | 437 | static std::atomic<uint32_t> init_process_flags = 0; | |
| 438 | + static_assert( | ||
| 439 | + std::is_same_v<std::underlying_type_t<ProcessInitializationFlags::Flags>, | ||
| 440 | + uint32_t>); | ||
| 435 | 441 | ||
| 436 | 442 | static void PlatformInit(ProcessInitializationFlags::Flags flags) { | |
| 437 | 443 | // init_process_flags is accessed in ResetStdio(), | |
@@ -1057,7 +1063,7 @@ std::unique_ptr<InitializationResult> InitializeOncePerProcess( | |||
| 1057 | 1063 | } | |
| 1058 | 1064 | ||
| 1059 | 1065 | void TearDownOncePerProcess() { | |
| 1060 | - const uint64_t flags = init_process_flags.load(); | ||
| 1066 | + const uint32_t flags = init_process_flags.load(); | ||
| 1061 | 1067 | ResetStdio(); | |
| 1062 | 1068 | if (!(flags & ProcessInitializationFlags::kNoDefaultSignalHandling)) { | |
| 1063 | 1069 | ResetSignalHandlers(); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -227,10 +227,8 @@ class Environment; | |||
| 227 | 227 | class MultiIsolatePlatform; | |
| 228 | 228 | class InitializationResultImpl; | |
| 229 | 229 | ||
| 230 | - namespace ProcessFlags { | ||
| 231 | - // TODO(addaleax): Switch to uint32_t to match std::atomic<uint32_t> | ||
| 232 | - // init_process_flags in node.cc | ||
| 233 | - enum Flags : uint64_t { | ||
| 230 | + namespace ProcessInitializationFlags { | ||
| 231 | + enum Flags : uint32_t { | ||
| 234 | 232 | kNoFlags = 0, | |
| 235 | 233 | // Enable stdio inheritance, which is disabled by default. | |
| 236 | 234 | // This flag is also implied by kNoStdioInitialization. | |
@@ -270,9 +268,8 @@ enum Flags : uint64_t { | |||
| 270 | 268 | kNoParseGlobalDebugVariables | kNoAdjustResourceLimits | | |
| 271 | 269 | kNoUseLargePages | kNoPrintHelpOrVersionOutput, | |
| 272 | 270 | }; | |
| 273 | - } // namespace ProcessFlags | ||
| 274 | - // TODO(addaleax): Make this the canonical name, as it is more descriptive. | ||
| 275 | - namespace ProcessInitializationFlags = ProcessFlags; | ||
| 271 | + } // namespace ProcessInitializationFlags | ||
| 272 | + namespace ProcessFlags = ProcessInitializationFlags; // Legacy alias. | ||
| 276 | 273 | ||
| 277 | 274 | class NODE_EXTERN InitializationResult { | |
| 278 | 275 | public: | |
| Back | FazBrowse Home | New Git URL |
0 commit comments