Willem's Camel Milk corrects IE6 width calculation Saturday, September 10, 2011 I decided to write a circular buffer (CB) because my bittorrent client was responding to a peer's requests faster than what it could write. The poll function of my API threw me completely. My first two efforts were superseded by the third! Effort #1: Reading straight from the CB /** * Get pointer of data to be read. * @return pointer to data, null if we can't poll this much data * */ unsigned char *cbuf_poll( cbuf_t * cb, const int size ); Looks great, and would be an easy to use function. Unfortunately, boundary cases are the killer. For example, say as if you want to poll 10 bytes, but the head of the CB is currently at byte 9....