@@ -368,21 +368,19 @@ void vPortYield( void )
368368
369369void vPortDisableInterrupts ( void )
370370{
371- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
371+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
372372 {
373- return ;
373+ pthread_sigmask ( SIG_BLOCK , & xAllSignals , NULL ) ;
374374 }
375- pthread_sigmask (SIG_BLOCK , & xAllSignals , NULL );
376375}
377376/*-----------------------------------------------------------*/
378377
379378void vPortEnableInterrupts ( void )
380379{
381- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
380+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
382381 {
383- return ;
382+ pthread_sigmask ( SIG_UNBLOCK , & xAllSignals , NULL ) ;
384383 }
385- pthread_sigmask (SIG_UNBLOCK , & xAllSignals , NULL );
386384}
387385/*-----------------------------------------------------------*/
388386
@@ -452,32 +450,31 @@ void prvSetupTimerInterrupt( void )
452450
453451static void vPortSystemTickHandler ( int sig )
454452{
455- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
453+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
456454 {
457- fprintf ( stderr , "vPortSystemTickHandler called from non-FreeRTOS thread\n" );
458- return ;
459- }
455+ Thread_t * pxThreadToSuspend ;
456+ Thread_t * pxThreadToResume ;
460457
461- Thread_t * pxThreadToSuspend ;
462- Thread_t * pxThreadToResume ;
458+ ( void ) sig ;
463459
464- ( void ) sig ;
460+ uxCriticalNesting ++ ; /* Signals are blocked in this signal handler. */
465461
466- uxCriticalNesting ++ ; /* Signals are blocked in this signal handler. */
462+ pxThreadToSuspend = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
467463
468- pxThreadToSuspend = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
464+ if ( xTaskIncrementTick () != pdFALSE )
465+ {
466+ /* Select Next Task. */
467+ vTaskSwitchContext ();
469468
470- if ( xTaskIncrementTick () != pdFALSE )
471- {
472- /* Select Next Task. */
473- vTaskSwitchContext ();
469+ pxThreadToResume = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
474470
475- pxThreadToResume = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
471+ prvSwitchThread ( pxThreadToResume , pxThreadToSuspend );
472+ }
476473
477- prvSwitchThread ( pxThreadToResume , pxThreadToSuspend );
474+ uxCriticalNesting -- ;
475+ } else {
476+ fprintf ( stderr , "vPortSystemTickHandler called from non-FreeRTOS thread\n" );
478477 }
479-
480- uxCriticalNesting -- ;
481478}
482479/*-----------------------------------------------------------*/
483480
0 commit comments