| 261 | std::atomic_flag primary_booted_ = ATOMIC_FLAG_INIT; |
| 262 | |
| 263 | auto _start(int argc, const char** argv) -> void { |
| 264 | if (!primary_booted_.test_and_set(std::memory_order_acquire)) { |
| 265 | CppInit(); |
| 266 | main(argc, argv); |
| 267 | } else { |
| 268 | main_smp(argc, argv); |
| 269 | } |
| 270 | |
| 271 | while (true) { |
| 272 | cpu_io::Pause(); |
| 273 | } |
| 274 | } |
| 275 | |
| 276 | auto main(int argc, const char** argv) -> int { |
| 277 | per_cpu::PerCpuArraySingleton::create(); |