The Unidata Local Data Manager (LDM) system includes network client and server programs designed for event-driven data distribution, and is the fundamental component of the Unidata Internet Data Distribution (IDD) system.
The use of exitIfDone() should be eliminated because 1) it complicates thinking about the flow-of-control because it's, basically, a "goto"; and 2) it prevents resources (particularly malloc()ed ones) from being reclaimed -- thus, complicating the use of valgrind(1).
Functions that use exitIfDone() will have to be modified to return an appropriate status to their calling function. All functions in the calling-sequence will have to be modified to unwind the sequence -- freeing resources as it's unwound.
The use of exitIfDone() should be eliminated because 1) it complicates thinking about the flow-of-control because it's, basically, a "goto"; and 2) it prevents resources (particularly malloc()ed ones) from being reclaimed -- thus, complicating the use of valgrind(1).
Functions that use exitIfDone() will have to be modified to return an appropriate status to their calling function. All functions in the calling-sequence will have to be modified to unwind the sequence -- freeing resources as it's unwound.