Hi Nick! Thanks for answering!
>Ugh. It looks like you're running into EVBUFFER_MAX_READ, defined in >buffer.c . You can edit the source and redefine it as high as you >want, but there's no way to change it programmatically right now. I'd >love to make the "how much to read or write" logic more -- well, >logical -- in the future, but as the code stands now I'm worried that >fiddling with it now in 2.0 would break somebody, somewhere. Yes, indeed i've found another limiting factor besides EVBUFFER_MAX_READ. On bufferevent_ratelim.c there is another limit called MAX_TO_READ_EVER with default value 16384 bytes. To make an analogy, EVBUFFER_MAX_READ would be a soft limit and MAX_TO_READ_EVER a hard limit. >You could pretty easily also turn it from a macro into a static >variable, and add a function to set it. I'd be leery of doing that in >the main codebase right now, since it's not the right interface >long-term. In 2.1, I think the answer is for somebody take the risk >and refactor the "how much to read or write" logic entirely, probably >removing the notion of EVBUFFER_MAX_READ along the way. I edited those values and compiled again to make some tests, but i don't know why my memory usage during the simulation went up to quickly making my computer swap ;( I don't know if there is some leak inside libevent or these values are the base of internal allocation, but it's very dangerous touching those values right now. I prefer, by now, stick with old plain read/write syscalls instead buffervent for my test purpose. It would be great to modify during runtime the read/write data packet size window using bufferevent and evbuffer facility! Thanks again for all your support! Best regards, Raine