@@ -46,18 +46,7 @@ CHIP_ERROR GenericPlatformManagerImpl_FreeRTOS<ImplClass>::_InitChipStack(void)
46
46
47
47
vTaskSetTimeOutState (&mNextTimerBaseTime );
48
48
mNextTimerDurationTicks = 0 ;
49
- // TODO: This nulling out of mEventLoopTask should happen when we shut down
50
- // the task, not here!
51
- mEventLoopTask = NULL ;
52
- #if defined(CHIP_DEVICE_CONFIG_ENABLE_BG_EVENT_PROCESSING) && CHIP_DEVICE_CONFIG_ENABLE_BG_EVENT_PROCESSING
53
- mBackgroundEventLoopTask = NULL ;
54
- #endif
55
- mChipTimerActive = false ;
56
-
57
- // We support calling Shutdown followed by InitChipStack, because some tests
58
- // do that. To keep things simple for existing consumers, we keep not
59
- // destroying our lock and queue in shutdown, but rather check whether they
60
- // already exist here before trying to create them.
49
+ mChipTimerActive = false ;
61
50
62
51
if (mChipStackLock == NULL )
63
52
{
@@ -277,10 +266,13 @@ template <class ImplClass>
277
266
void GenericPlatformManagerImpl_FreeRTOS<ImplClass>::EventLoopTaskMain(void * arg)
278
267
{
279
268
ChipLogDetail (DeviceLayer, " CHIP event task running" );
280
- static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->Impl ()->RunEventLoop ();
269
+ GenericPlatformManagerImpl_FreeRTOS<ImplClass> * platformManager =
270
+ static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg);
271
+ platformManager->Impl ()->RunEventLoop ();
281
272
vTaskDelete (NULL );
282
- vQueueDelete (static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->mChipEventQueue );
283
- static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->mChipEventQueue = NULL ;
273
+ vQueueDelete (platformManager->mChipEventQueue );
274
+ platformManager->mChipEventQueue = NULL ;
275
+ platformManager->mEventLoopTask = NULL ;
284
276
}
285
277
286
278
template <class ImplClass >
@@ -376,10 +368,13 @@ template <class ImplClass>
376
368
void GenericPlatformManagerImpl_FreeRTOS<ImplClass>::BackgroundEventLoopTaskMain(void * arg)
377
369
{
378
370
ChipLogDetail (DeviceLayer, " CHIP background task running" );
379
- static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->Impl ()->RunBackgroundEventLoop ();
371
+ GenericPlatformManagerImpl_FreeRTOS<ImplClass> * platformManager =
372
+ static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg);
373
+ platformManager->Impl ()->RunBackgroundEventLoop ();
380
374
vTaskDelete (NULL );
381
- vQueueDelete (static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->mBackgroundEventQueue );
382
- static_cast <GenericPlatformManagerImpl_FreeRTOS<ImplClass> *>(arg)->mBackgroundEventQueue = NULL ;
375
+ vQueueDelete (platformManager->mBackgroundEventQueue );
376
+ platformManager->mBackgroundEventQueue = NULL ;
377
+ platformManager->mBackgroundEventLoopTask = NULL ;
383
378
}
384
379
#endif
385
380
0 commit comments