Hi all, I have a question about the thread-safety of the socket API, specifically with regard to recvfrom() and close(). I am using lwIP 2.0.2, ported for FreeRTOS and ARM Cortex M4.
I have a thread that reads from a set of UDP sockets using select() and then calls recvfrom() on any ready sockets. I had assumed that it would be a safe operation to close() one of the sockets from a different thread context without worrying about what my receive thread is doing currently, and that if a recvfrom() was being called on that socket at the same time, it would simply exit with an error. However, I seem to have triggered an assert failure from within netconn_recv_data(). I have a call stack that shows that close() was being called from a different thread at the time the assert failure happened. I can provide more information if necessary, but first I need to verify my assumption about thread safety. Do I need to make sure that I'm not calling any other socket API functions on the same socket at the same time as I call close()? Thanks, Sam _______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
