diff --git a/source/FreeRTOS_Stream_Buffer.c b/source/FreeRTOS_Stream_Buffer.c index 5c0c52fc8..5f0d08f5b 100644 --- a/source/FreeRTOS_Stream_Buffer.c +++ b/source/FreeRTOS_Stream_Buffer.c @@ -307,7 +307,7 @@ size_t uxStreamBufferAdd( StreamBuffer_t * const pxBuffer, /* The below update to the stream buffer members must happen * atomically. */ - vTaskSuspendAll(); + taskENTER_CRITICAL(); { if( uxOffset == 0U ) { @@ -328,7 +328,7 @@ size_t uxStreamBufferAdd( StreamBuffer_t * const pxBuffer, pxBuffer->uxFront = uxNextHead; } } - ( void ) xTaskResumeAll(); + taskEXIT_CRITICAL(); } return uxCount; diff --git a/test/unit-test/FreeRTOS_Stream_Buffer/FreeRTOS_Stream_Buffer_utest.c b/test/unit-test/FreeRTOS_Stream_Buffer/FreeRTOS_Stream_Buffer_utest.c index b4e6c3d29..2fcb41c55 100644 --- a/test/unit-test/FreeRTOS_Stream_Buffer/FreeRTOS_Stream_Buffer_utest.c +++ b/test/unit-test/FreeRTOS_Stream_Buffer/FreeRTOS_Stream_Buffer_utest.c @@ -601,9 +601,6 @@ void test_uxStreamBufferAdd_BufferHasMoreSpaceThanData_ZeroOffset_DataWriteCause FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, pucData, uxByteCount ); /* Only these many bytes should be written. */ @@ -656,9 +653,6 @@ void test_uxStreamBufferAdd_BufferHasLessSpaceThanData_ZeroOffset( void ) FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, pucData, uxByteCount ); /* Only 500 bytes should be written. */ @@ -702,9 +696,6 @@ void test_uxStreamBufferAdd_BufferHasLessSpaceThanData_NonZeroOffset( void ) FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, pucData, uxByteCount ); /* Only these many bytes should be written. */ @@ -757,9 +748,6 @@ void test_uxStreamBufferAdd_BufferHasLessSpaceThanData_NonZeroOffsetCausesRollov FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, pucData, uxByteCount ); /* Only these many bytes should be written. */ @@ -813,9 +801,6 @@ void test_uxStreamBufferAdd_BufferHasLessSpaceThanData_ZeroOffset_DataWriteCause FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, pucData, uxByteCount ); /* Only these many bytes should be written. */ @@ -873,9 +858,6 @@ void test_uxStreamBufferAdd_NULLData_BufferHasLessSpaceThanData_ZeroOffset_DataW FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, NULL, uxByteCount ); /* Nothing should be written but tail will be updated. */ @@ -929,9 +911,6 @@ void test_uxStreamBufferAdd_NULLData_BufferHasLessSpaceThanData_ZeroOffset_DataW FreeRTOS_min_size_t_Stub( FreeRTOS_min_stub ); - vTaskSuspendAll_Expect(); - xTaskResumeAll_ExpectAndReturn( pdTRUE ); - uxReturn = uxStreamBufferAdd( pxLocalBuffer, uxOffset, NULL, uxByteCount ); /* Nothing should be written but tail should be updated. */