I have a VDK Lwip application tha appears to have a race condition in posting a IOE semaphore and a thread status change.
In my code I have a ADC thread to collect data and post an event to a process data thread that pends on that event to send data out across the ethernet. I previously used a semaphore to control sychronization but switched to an event to differentiate for debug. I have attached history files for two cases. In the first the processdata_thread history shows a semaphore pended (by the IoeThread ???), an event pended (by the ADC thread) and then a thread status change. In the second case (blocked) the processdata_thread history shows a status change and then a semaphore pend. I have no pend on semaphores in my code in that thread. Is the pend within the send() function call to output over ethernet. or is the a scheduler pend? How can I tell where the program is stopped and what is causing this to happen?
I am not sure of where to look resolve the problem, optimize the lwip setup, add additional code, ???.
I am developing on a BF537 (KAZTEK module) with visualDSP 5.0 version 8.