-
Notifications
You must be signed in to change notification settings - Fork 162
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: refactor how libuv companion objects are allocated
All native bindings are allocated and attached to the JS object in an opaque. When what we attach is a native binding to a libuv handle there is a tricky situation: uv_close() is not synchronous, which means that we need to delay freeing the native object until the close callback was called. This is a problem when objects are freed as part of freeing the JS engine, since by the time the close callback is called the JS context and runtime have been freed. In order to avoid this problem, allocate the memory for these "companion" objects with the tjs__ family of functions, which don't depend on the JS context. This also allows us to refactor TJSFreeRuntime to a much more obvious flow. There is no need to walk and close all libuv handles, since they'll all be closed when the JS engine is terminated.
- Loading branch information
Showing
10 changed files
with
62 additions
and
81 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 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
Oops, something went wrong.