summaryrefslogtreecommitdiffstats
path: root/Source/cmUVHandlePtr.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-10/+10
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* utilities: Swapped to use std C++11 mutex/threading constructsJustin Berger2017-12-011-5/+5
|
* cmUVHandlePtr: Add uv_process_ptrBrad King2017-11-301-0/+9
|
* cmUVHandlePtr: Add uv_timer_ptrBrad King2017-11-301-0/+14
|
* cmUVHandlePtr: Move to CMakeLib to make it available everywhereBrad King2017-11-301-2/+8
|
* Add RAII handles for libuv handle typesJustin Berger2017-11-291-0/+198
The `uv_*_t` handle types are closed by `uv_close`, but the semantics are tricky. Calling `uv_close` may not close immediately. Instead it hands ownership to the uv loop to which the handle is currently attached. When the loop decides to close it, a callback is used to allow the `uv_close` caller to free resources. Provide an abstraction layer as `cm::uv_*_ptr` types corresponding to the `uv_*_t` handle types. Each pointer is either empty (`nullptr`) or has an initialized handle attached to a loop. Use move semantics to ensure a single owner of the handle so that clients can predict when the handle is destroyed.