Tests that no Windows handles are leaked in Directory APIs#99
Draft
Squareys wants to merge 1 commit intomosra:masterfrom
Draft
Tests that no Windows handles are leaked in Directory APIs#99Squareys wants to merge 1 commit intomosra:masterfrom
Squareys wants to merge 1 commit intomosra:masterfrom
Conversation
Signed-off-by: Squareys <squareys@googlemail.com>
mosra
reviewed
Aug 15, 2020
| #ifdef CORRADE_TARGET_WINDOWS | ||
| /* Ensure we are not leaking handles */ | ||
| DWORD newHandleCount = 0; | ||
| GetProcessHandleCount(GetCurrentProcess(), &newHandleCount); |
Owner
There was a problem hiding this comment.
Wow, this is cool, didn't even know such thing was possible.
You know what? This would be good to do for everything -- I think this could be doable in setup/teardown routines, but I need to patch TestSuite a bit to allow checks there. Is it okay if I merge just the first part with the scope guard so you have the fix and leave this extra check for later when TestSuite is ready?
Contributor
Author
There was a problem hiding this comment.
We can also merge this and refactor it once test suite is ready (or refactor with making it ready).
Owner
|
Merged the fix alone in 515cc7e, keeping this open so I have a reminder to add the handle counting to all tests. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi @mosra !
As per gitter, here's the fix for the leaking handle. Windows will refuse to delete folders with open handles, which means every
list()-ed folder would be locked until application exit.Best,
Jonathan
Edit by @mosra -- things to do in addition to Windows handle leak counting because yes everything turns into a "fixing a lightbulb" problem after a while:
/proc/self/fdbefore and after/dev/fd?? https://stackoverflow.com/a/42483033errnoclean in Directory APIs / tests (in particular, if some API such asrm()fails, it should clean errno after itself)