| 128 | +---------------------------------------------------------------------------------------------------------------------*/ |
| 129 | |
| 130 | void MainThread::lowLevelInitializer() |
| 131 | { |
| 132 | #ifdef DISTORTOS_MAIN_THREAD_CAN_RECEIVE_SIGNALS |
| 133 | |
| 134 | auto& mainThreadStaticSignalsReceiver = |
| 135 | *new (&mainThreadStaticSignalsReceiverStorage) MainThreadStaticSignalsReceiver; |
| 136 | const auto mainThreadStaticSignalsReceiverPointer = &static_cast<SignalsReceiver&>(mainThreadStaticSignalsReceiver); |
| 137 | |
| 138 | #else // !def DISTORTOS_MAIN_THREAD_CAN_RECEIVE_SIGNALS |
| 139 | |
| 140 | // nullptr - reception of signals is disabled for main thread |
| 141 | constexpr auto mainThreadStaticSignalsReceiverPointer = nullptr; |
| 142 | |
| 143 | #endif // !def DISTORTOS_MAIN_THREAD_CAN_RECEIVE_SIGNALS |
| 144 | |
| 145 | auto& mainThread = *new (&mainThreadStorage) MainThread {DISTORTOS_MAIN_THREAD_PRIORITY, |
| 146 | mainThreadGroupControlBlock, mainThreadStaticSignalsReceiverPointer}; |
| 147 | getScheduler().initialize(mainThread.getThreadControlBlock()); /// \todo error handling? |
| 148 | mainThread.getThreadControlBlock().switchedToHook(); |
| 149 | } |
| 150 | |
| 151 | BIND_LOW_LEVEL_INITIALIZER(10, &MainThread::lowLevelInitializer); |
| 152 |
nothing calls this directly
no test coverage detected