[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] Handling concurent evhttp connections with evhttp_send_reply_chunk.



Agreed. The most optimal way of doing this would be to use your operating system's sendfile() routine, where available, in the evhttp_write_cb routine.

-Patrick

2009/11/16 Tero Marttila <terom@xxxxxxxx>
Krzysztof Adamski wrote:
Hi,
i would like to build simple HTTPD server using libevent2. It is going
to send some quite big files but i would like it to handle couple
concurrent connections. The files can be sent in chunks so I'm using
evhttp_send_reply_chunk for this. The problem is, how can I send big
files while still being able to handle new connections?

One option is to add the functionality to evhttp.

I don't have any concrete patches to post, but when I tried this a (long) while ago, it was fairly straightforward, just building on top of the existing bufferevent watermark functionality.

More specifically, it amounted to having evhttp_write_buffer apply a suitable bufferevent_setwatermark (EV_WRITE lowmark) when called from within evhttp_send_reply_chunk, setting up evcon->cb to invoke the user's "send more data" callback from evhttp_write_cb. This worked, to the extent that I tested it.

 -- Tero Marttila

***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.