I have written a program for a linux box running on a davinci (arm processor). The program communicates with a server over the lan, calls some scripts, and delays different amounts of time depending on what the server tells it to do. It all works great, most of the time. every once in a while though, (2% of the machines, once every 16 hours) will freeze at the delay command.
sleep(DisplayDuration);
DisplayDuration is an int
It seems when this happens, the command isnt just blocking, the whole phone locks up. Does not respond to pings, does not respond to serial input. It must be power cycled to recover.
Has anyone else seen this? The percentage is very low, but its too high for production, and we need to know if this is a software problem that we can fix or a genuine hardware failure.
So, what I'm asking is: is there something wrong with the C function "sleep(int)" in linux? Has anyone else experienced a device freezing when calling this function? can someone explain why this happens, or suggest a solution?
Thanks.