Linux: LAD_client: Avoid hang in fopen during connect
authorAngela Stegmaier <angelabaker@ti.com>
Wed, 26 Jul 2017 14:57:00 +0000 (09:57 -0500)
committerAngela Stegmaier <angelabaker@ti.com>
Thu, 3 Aug 2017 16:44:01 +0000 (11:44 -0500)
commita967b6b039bff1288506489f754583597ad90e19
tree73689385a50b8563dd8e274d7218db37212ee149
parent6736bb2b9b060cf37d3e6728e21509b24ec12da8
Linux: LAD_client: Avoid hang in fopen during connect

If the application is started and calls Ipc_start before
the LAD is started and created/opened the fifo, then
the application can block in the fopen trying to connect
to the command FIFO.

This patch makes the sequence more robust by first checking
if the fifo exists, then trying to open it as non-blocking,
thereby getting an immediate success or error instead of
blocking until it has been opened for reading by LAD. Once
the non-blocking open returns successfully, the regular
connect sequence can continue. If it returns with a failure,
it will sleep and then try again for a period of time,
eventually returning a timeout failure if it is unable
to connect. This should prevent the application from hanging
if LAD is not started before it calls Ipc_start.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
linux/src/utils/LAD_client.c