This repository has been archived by the owner on May 4, 2018. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
unix, windows: rework reference counting scheme
This commit changes how the event loop determines if it needs to stay alive. Previously, an internal counter was increased whenever a handle got created and decreased again when the handle was closed. While conceptually simple, it turned out hard to work with: you often want to keep the event loop alive only if the handle is actually doing something. Stopped or inactive handles were a frequent source of hanging event loops. That's why this commit changes the reference counting scheme to a model where a handle only references the event loop when it's active. 'Active' means different things for different handle types, e.g.: * timers: ticking * sockets: reading, writing or listening * processes: always active (for now, subject to change) * idle, check, prepare: only active when started This commit also changes how the uv_ref() and uv_unref() functions work: they now operate on the level of individual handles, not the whole event loop. The Windows implementation was done by Bert Belder.
- Loading branch information
1 parent
07622e7
commit 9efa8b3
Showing
60 changed files
with
1,002 additions
and
966 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
9efa8b3
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.
Add: connecting, shutting down
This is not the case on windows atm: process handles are active until the process exits, or the process handle is closed.
Also: