What does this mean:
"This function is a cancellation point in multi-threaded programs. This is a problem if the thread allocates some resources (like memory, file descriptors, semaphores or whatever) at the time read is called. If the thread gets canceled these resources stay allocated until the program ends. To avoid this, calls to read should be protected using cancellation handlers." (GNU)
I'm asking because I just mistook a failed recv in a fork for a symptom of such (the message: "bad address"/file descriptor, the real problem: unallocated buffer). I hadn't realized forking counts as multi-threading (but it does according to wikipedia).
If this is all true, what is the significance of the cancellation point?