From 201448c9bbd6a143e0ad04b4961bd856eb6b5012 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Fri, 3 Jun 2016 14:52:38 -0400 Subject: src: error or NULL links they happen on close Right after `uv_link_close()` all links will be unchained, meaning that they `link->parent` is NULL. Instead of crashing on calls like: `uv_link_try_write(link->parent, ...)` Make them return `UV_EFAULT`, indicating that no parent is present anymore. Alternatively, these checks could be done in user code, but it will make it too cumbersome. --- test/src/test-close.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/src/test-close.c') diff --git a/test/src/test-close.c b/test/src/test-close.c index bbbaf26..4f10630 100644 --- a/test/src/test-close.c +++ b/test/src/test-close.c @@ -19,10 +19,16 @@ static void c_close_cb(uv_link_t* l) { static void b_read_cb(uv_link_observer_t* o, ssize_t nread, const uv_buf_t* d) { b_reads |= 1 << nread; if (nread == 2) { + uv_buf_t tmp; + CHECK_EQ(a.close_depth, 0, "depth check"); CHECK_EQ(b.close_depth, 2, "depth check"); CHECK_EQ(c.close_depth, 1, "depth check"); uv_link_close((uv_link_t*) &c, c_close_cb); + + CHECK_EQ(o->parent, NULL, "parent should be zeroed"); + CHECK_EQ(uv_link_try_write(o->parent, &tmp, 0), UV_EFAULT, + "write should fail"); } else { CHECK_EQ(a.close_depth, 0, "depth check"); CHECK_EQ(b.close_depth, 1, "depth check"); -- cgit 1.4.1-2-gfad0 og blame commit diff stats
path: root/config.mk
blob: 21594813644baee48047f4a2919791c131463add (plain) (tree)
1
2
3
4
5
6
7