diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2016-04-23 16:16:03 +0000 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2016-04-23 16:16:03 +0000 |
commit | 1fe4a6c7025cb91f3410459a7a92d75fbbcd0df7 (patch) | |
tree | ce0de4d08644800442b083b5337ce04a0c609b75 | |
parent | 8bb4ce7621be4e6bcd4bcdc7513b7c94fcded3b4 (diff) |
test_quiesce: do not violate our API
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/testcurl/test_quiesce.c | 9 |
2 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,6 @@ +Sat Apr 23 16:06:30 CET 2016 + Improved test_quiesce test. -EG + Sat Apr 23 15:39:38 CET 2016 Notify other threads in MHD_quiesce_daemon() so listen socket FD is removed from awaiting select() and poll(). -EG diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c index aedcf760..bf5e6d44 100644 --- a/src/testcurl/test_quiesce.c +++ b/src/testcurl/test_quiesce.c @@ -150,8 +150,13 @@ ServeOneRequest(void *param) MHD_SYS_select_ (max + 1, &rs, &ws, &es, &tv); MHD_run (d); } + fd = MHD_quiesce_daemon (d); + if (MHD_INVALID_SOCKET == fd) + { + MHD_stop_daemon (d); + return "MHD_quiesce_daemon() failed in ServeOneRequest()"; + } MHD_stop_daemon (d); - MHD_socket_close_(fd); return done ? NULL : "Requests was not served by ServeOneRequest()"; } @@ -429,7 +434,6 @@ testExternalGet () MHD_stop_daemon (d); return 2; } - MHD_socket_close_ (fd); c = setupCURL (&cbc); multi = curl_multi_init (); mret = curl_multi_add_handle (multi, c); @@ -450,6 +454,7 @@ testExternalGet () curl_multi_cleanup (multi); } MHD_stop_daemon (d); + MHD_socket_close_ (fd); if (cbc.pos != strlen ("/hello_world")) return 8192; if (0 != strncmp ("/hello_world", cbc.buf, strlen ("/hello_world"))) |