select_check_waiters() function
Check if any select waiters are waiting on this socket and its events
Notes
on synchronization of select_cb_list: LWIP_TCPIP_CORE_LOCKING: the select_cb_list must only be accessed while holding the core lock. We do a single pass through the list and signal any waiters. Core lock should already be held when calling here!!!! !LWIP_TCPIP_CORE_LOCKING: we use SYS_ARCH_PROTECT but unlock on each iteration of the loop, thus creating a possibility where a thread could modify the select_cb_list during our UNPROTECT/PROTECT. We use a generational counter to detect this change and restart the list walk. The list is expected to be small