I've encountered a possible issue in src/api/sockets.c
in the function event_callback() there seems to be a potential problem with
detecting possible
modification of the list while looping:
}
if (do_signal) {
scb->sem_signalled = 1;
/* Don't call SYS_ARCH_UNPROTECT() before signaling the semaphore, as
this might
lead to the select thread taking itself off the list, invalidagin
the semaphore. */
sys_sem_signal(&scb->sem);
}
}
/* unlock interrupts with each step */
last_select_cb_ctr = select_cb_ctr;
the call to sys_sem_signal() could cause a modification of the list.
so I think the 'select_cb_ctr' has to be stored *before* the call to
sys_sem_signal()