aboutsummaryrefslogtreecommitdiffstats
path: root/src/ringbuf.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2008-08-30ringbuf: create a new struct rbvec instead of reusing struct iovecEric Wong1-18/+18
Using struct iovec means having to cast iov_base everywhere we want to do pointer arithmetic. Instead, just use rbvec which can be safely casted to iovec whenever we use the readv/writev functions.
2008-08-30fixed ringbuf.c warningsMax Kellermann1-4/+4
Fix a "signed/unsigned comparison warning", and several void pointer math warnings.
2008-06-30ringbuf: add thread-safe, thread-specific reset functionsEric Wong1-0/+12
This will allow both the reader and writer threads to reset the ringbuffer in a thread-safe fashion. git-svn-id: https://svn.musicpd.org/mpd/trunk@7390 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-06-30ringbuf: get_{write,read}_vector returns total bytes in both vec eltsEric Wong1-3/+4
This will eliminate unnecessary calls to ringbuf_{read,write}_space git-svn-id: https://svn.musicpd.org/mpd/trunk@7389 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-06-30Add a generic ring buffer implementationEric Wong1-0/+296
This piece of code is from the JACK Audio Connection Kit (trimmed down a bit for better readability). The vector functions now reuse the common iovec struct used by writev/readv instead of reinventing an identical but differently-named struct. From the comments: > ISO/POSIX C version of Paul Davis's lock free ringbuffer C++ code. > This is safe for the case of one read thread and one write thread. License is LGPL 2.1 or later git-svn-id: https://svn.musicpd.org/mpd/trunk@7386 09075e82-0dd4-0310-85a5-a0d7c8717e4f