[FreeRTOS+TCP API Reference]
BaseType_t FreeRTOS_SignalSocket( Socket_t xSocket ); BaseType_t FreeRTOS_SignalSocketFromISR( Socket_t xSocket, BaseType_t *pxHigherPriorityTaskWoken );Used to send a signal to a socket, the result of which is that any task blocked on a read from the socket will leave the Blocked state (abort the blocking operation), with the task’s read operation (FreeRTOS_recv() or FreeRTOS_recvfrom()) returning -pdFREERTOS_ERRNO_EINTR.
If the socket is part of a socket set (SocketSet_t), the call to FreeRTOS_select() using that socket set, will also get interrupted and return -pdFREERTOS_ERRNO_EINTR.
FreeRTOS_SignalSocketFromISR() is a version of FreeRTOS_SignalSocket() that can be used from an interrupt service routine (ISR).
ipconfigSUPPORT_SIGNALS must be set to 1 in FreeRTOSIPConfig.h for FreeRTOS_SignalSocket() to be available.
The socket to which the signal is being sent.
*pxHigherPriorityTaskWoken must be initialised to 0.
FreeRTOS_SignalSocketFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE if sending the signal to the socket caused a task to unblock, and the unblocked task has a priority higher than the currently running task.
If FreeRTOS_SignalSocket() sets this value to pdTRUE then a context switch should be requested before the interrupt is exited. The name of the macro used to request a context switch from an ISR is dependent on the port, and will be called either portYIELD_FROM_ISR() or portEND_SWITCHING_ISR(). Refer to the documentation and examples provided for the port in use.
If xSocket is not a valid socket then -pdFREERTOS_ERRNO_EINVAL is returned. Otherwise 0 is returned.