Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added a _cancelled flag for the client call to track if the call was cancelled #360

Merged
merged 1 commit into from
May 10, 2024

Conversation

ni-sujain
Copy link
Collaborator

@ni-sujain ni-sujain commented May 9, 2024

fix for #345 #354
When we have multiple streaming calls doing read operations in parallel and we cancel those calls, some of the calls will complete with correct error status(as they finished reading the stream and the subsequent reads are not valid) and some calls might hang as they are waiting on occurrence to get signaled from async c++ thread.

When we cancelled the calls, they get removed form ActiveCalls list. Once we complete any read in async C++ thread, we always signal the occurrence corresponding to calls present in this active call list only. But if the call was cancelled, it will get removed this list and we will end up not signaling for it and VI will hang in Wait for occurrence.

To fix this added a _cancelled flag in ClientCall to keep track if the call was cancelled. If cancelled that async ++ thread will signal occurrence now.

Note: I want to add one LV client server test for this but I have to add some infrastructure to do that in existing ATS.

…cancelled. If cancelled then we need to signal occurrence no matter if the call is still under ActiveListCalls or not
@ni-sujain ni-sujain requested a review from yash-ni May 9, 2024 10:52
@ni-sujain ni-sujain merged commit 22643bb into ni:master May 10, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant