-
Notifications
You must be signed in to change notification settings - Fork 10.6k
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
Address some memory hazards in Cython code #5478
Conversation
Some __dealloc__ methods were calling Python methods, and some references were being dropped on the floor instead of threaded through gRPC core.
self.poll() | ||
event = grpc_completion_queue_next( | ||
self.c_completion_queue, c_deadline, NULL) | ||
self._interpret_event(event) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is self._interpret_event
safe to call from inside __dealloc__
? And even if it is, what's the point of doing so if its return value is ignored?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_interpret_event
is cdef
(so it should ostensibly be 'safe' as long as it itself calls no def
methods on self
) and has side-effects that notify other objects that are subscribed via the tag (e.g. servers).
Looks good; merge on test results. |
Disappointed that this didn't fix any bugs, but, still necessary. Mergin'. |
Address some memory hazards in Cython code
Guys, seriously. I need you to start paying more attention to test results before merging.
|
Some
__dealloc__
methods were calling Python methods, and some references were being dropped on the floor instead of threaded through gRPC core.