Avoid libuv resource leaks (fixes #395)

This commit is contained in:
John Firebaugh
2014-08-02 14:39:02 -07:00
parent 5f208c268b
commit 992815cc3d

View File

@@ -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 {