Hello,

 

I am using MHD 0.9.48 version are working to create a cache server.

I saw recently with the SUSPEND_RESUME for asynchronous processing if
multiple connection at the same time to resume the write times of the pipe
caused by an event occurs once and only once read in the rest of the pipe
remains in the pipe queue.

If you look up several times repeated in this way all the pipe fills up, it
will not write anymore that block the phenomenon generated in the resume.

 

Following the above problem it did not occur anymore after such
modifications.

 

diff -r libmicrohttpd-0.9.48/src/include/platform_interface.h
my_0.9.48/src/include/platform_interface.h

163c163

< #define MHD_pipe_(fdarr) pipe((fdarr))

---

> #define MHD_pipe_(fdarr) pipe2((fdarr), O_NONBLOCK)

 

diff -r libmicrohttpd-0.9.48/src/microhttpd/daemon.c
my_0.9.48/src/microhttpd/daemon.c

2832c2832

<               (void) MHD_pipe_read_ (daemon->wpipe[0], &tmp, sizeof
(tmp));

---

>                 while (MHD_pipe_read_ (daemon->wpipe[0], &tmp, sizeof
(tmp)) > 0) ;

 

 

Best Regards

Hyunho Kim

 

Reply via email to