seq: fix problem with synchronous pvPut/pvGet
The problem was that that once a synchronous request times out, the variable would never recover from the timeout state. This was because the semaphores would not be signalled on timeout. However, in order to correctly discard events (i.e. callbacks from CA) that belong to timed out requests, we have to remember them. This is what the getReq and putReq arrays in struct state_set are for. The fix assumes that CA will eventually call the callback for each accepted request, even if the channel disconnects. If the assumption is wrong then we have a memory leak.
Please register or sign in to comment