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.
Parameters:
| xSocket |
The socket to which the signal is being sent.
|
| pxHigherPriorityTaskWoken |
[FreeRTOS_SignalSocketFromISR() only.]
*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.