I am running a simple client and server task.
The client task is blocked on FreeRTOS_select()
(or should be, since I set xBlockTimeTicks
to portMAX_DELAY
).
The server calls uxTaskGetSystemState()
.
When the server then blocks and the client begins to run, FreeRTOS_select()
immediately returns 0
, implying a timeout (according to the API documentation).
The documentation says that uxTaskGetSystemState()
suspends the scheduler for an extended period. Is this the cause of FreeRTOS_socket()
timing out despite the argument to block indefinitely?
If I remove the call to uxTaskGetSystemState()
, the client behaves as expected (i.e., FreeRTOS_select()
blocks until an event on a socket in the socket set).
I can convince myself that this makes sense, but I couldn’t find any explicit documentation, so I wanted some more experienced confirmation before I stopped debugging and moved on to other things.
I’m running kernel V10.1.1 and TCP V2.0.11.
Mike