Gui: fix random crashes under load in icon_animation (#859)
This commit is contained in:
		
							parent
							
								
									b912cc7991
								
							
						
					
					
						commit
						41b5d5f5c9
					
				| @ -13,6 +13,8 @@ IconAnimation* icon_animation_alloc(const Icon* icon) { | |||||||
| 
 | 
 | ||||||
| void icon_animation_free(IconAnimation* instance) { | void icon_animation_free(IconAnimation* instance) { | ||||||
|     furi_assert(instance); |     furi_assert(instance); | ||||||
|  |     icon_animation_stop(instance); | ||||||
|  |     while(xTimerIsTimerActive(instance->timer) == pdTRUE) osDelay(1); | ||||||
|     furi_check(osTimerDelete(instance->timer) == osOK); |     furi_check(osTimerDelete(instance->timer) == osOK); | ||||||
|     free(instance); |     free(instance); | ||||||
| } | } | ||||||
| @ -65,8 +67,9 @@ void icon_animation_start(IconAnimation* instance) { | |||||||
|         furi_assert(instance->icon->frame_rate); |         furi_assert(instance->icon->frame_rate); | ||||||
|         furi_check( |         furi_check( | ||||||
|             xTimerChangePeriod( |             xTimerChangePeriod( | ||||||
|                 instance->timer, (osKernelGetTickFreq() / instance->icon->frame_rate), 0) == |                 instance->timer, | ||||||
|             pdPASS); |                 (osKernelGetTickFreq() / instance->icon->frame_rate), | ||||||
|  |                 portMAX_DELAY) == pdPASS); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -74,7 +77,7 @@ void icon_animation_stop(IconAnimation* instance) { | |||||||
|     furi_assert(instance); |     furi_assert(instance); | ||||||
|     if(instance->animating) { |     if(instance->animating) { | ||||||
|         instance->animating = false; |         instance->animating = false; | ||||||
|         furi_check(xTimerStop(instance->timer, 0) == pdPASS); |         furi_check(xTimerStop(instance->timer, portMAX_DELAY) == pdPASS); | ||||||
|         instance->frame = 0; |         instance->frame = 0; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく