@@ -368,21 +368,19 @@ void vPortYield( void )
368
368
369
369
void vPortDisableInterrupts ( void )
370
370
{
371
- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
371
+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
372
372
{
373
- return ;
373
+ pthread_sigmask ( SIG_BLOCK , & xAllSignals , NULL ) ;
374
374
}
375
- pthread_sigmask (SIG_BLOCK , & xAllSignals , NULL );
376
375
}
377
376
/*-----------------------------------------------------------*/
378
377
379
378
void vPortEnableInterrupts ( void )
380
379
{
381
- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
380
+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
382
381
{
383
- return ;
382
+ pthread_sigmask ( SIG_UNBLOCK , & xAllSignals , NULL ) ;
384
383
}
385
- pthread_sigmask (SIG_UNBLOCK , & xAllSignals , NULL );
386
384
}
387
385
/*-----------------------------------------------------------*/
388
386
@@ -452,32 +450,31 @@ void prvSetupTimerInterrupt( void )
452
450
453
451
static void vPortSystemTickHandler ( int sig )
454
452
{
455
- if ( prvIsFreeRTOSThread ( pthread_self () ) == pdFALSE )
453
+ if ( prvIsFreeRTOSThread ( pthread_self () ) == pdTRUE )
456
454
{
457
- fprintf ( stderr , "vPortSystemTickHandler called from non-FreeRTOS thread\n" );
458
- return ;
459
- }
455
+ Thread_t * pxThreadToSuspend ;
456
+ Thread_t * pxThreadToResume ;
460
457
461
- Thread_t * pxThreadToSuspend ;
462
- Thread_t * pxThreadToResume ;
458
+ ( void ) sig ;
463
459
464
- ( void ) sig ;
460
+ uxCriticalNesting ++ ; /* Signals are blocked in this signal handler. */
465
461
466
- uxCriticalNesting ++ ; /* Signals are blocked in this signal handler. */
462
+ pxThreadToSuspend = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
467
463
468
- pxThreadToSuspend = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
464
+ if ( xTaskIncrementTick () != pdFALSE )
465
+ {
466
+ /* Select Next Task. */
467
+ vTaskSwitchContext ();
469
468
470
- if ( xTaskIncrementTick () != pdFALSE )
471
- {
472
- /* Select Next Task. */
473
- vTaskSwitchContext ();
469
+ pxThreadToResume = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
474
470
475
- pxThreadToResume = prvGetThreadFromTask ( xTaskGetCurrentTaskHandle () );
471
+ prvSwitchThread ( pxThreadToResume , pxThreadToSuspend );
472
+ }
476
473
477
- prvSwitchThread ( pxThreadToResume , pxThreadToSuspend );
474
+ uxCriticalNesting -- ;
475
+ } else {
476
+ fprintf ( stderr , "vPortSystemTickHandler called from non-FreeRTOS thread\n" );
478
477
}
479
-
480
- uxCriticalNesting -- ;
481
478
}
482
479
/*-----------------------------------------------------------*/
483
480
0 commit comments