diff --git a/include/mbgl/util/uv.hpp b/include/mbgl/util/uv.hpp index f36da83e4..a11d9b19c 100644 --- a/include/mbgl/util/uv.hpp +++ b/include/mbgl/util/uv.hpp @@ -21,13 +21,18 @@ namespace uv { class loop { public: - inline loop() : l(uv_loop_new()) {} - inline ~loop() { uv_loop_delete(l); } + inline loop() { + if (uv_loop_init(&l) != 0) { + throw std::runtime_error("failed to initialize loop"); + } + } - inline uv_loop_t *operator*() { return l; } + inline ~loop() { uv_loop_close(&l); } + + inline uv_loop_t *operator*() { return &l; } private: - uv_loop_t *l; + uv_loop_t l; }; class mutex {