From a2c48a74265592922a1d1d1db0236dd782f6f7ec Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 27 Aug 2008 23:02:20 -0700 Subject: metadata_pipe: inline clear_pipe_unlocked() function I considered calling it from metadata_pipe_recv() in the past, but it's not necessary, so just inline it again to simplify things. --- src/metadata_pipe.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src/metadata_pipe.c') diff --git a/src/metadata_pipe.c b/src/metadata_pipe.c index a92fdd61b..2dc2b608f 100644 --- a/src/metadata_pipe.c +++ b/src/metadata_pipe.c @@ -79,17 +79,6 @@ void metadata_pipe_send(MpdTag *tag, float metadata_time) assert(written == sizeof(struct tag_container)); } -static void pipe_clear_unlocked(void) -{ - struct tag_container tc; - size_t r; - - while ((r = ringbuf_read(mp, &tc, sizeof(struct tag_container)))) { - assert(r == sizeof(struct tag_container)); - freeMpdTag(tc.tag); - } -} - MpdTag * metadata_pipe_recv(void) { struct tag_container tc; @@ -150,7 +139,15 @@ MpdTag *metadata_pipe_current(void) void metadata_pipe_clear(void) { + struct tag_container tc; + size_t r; + pthread_mutex_lock(&read_lock); - pipe_clear_unlocked(); + + while ((r = ringbuf_read(mp, &tc, sizeof(struct tag_container)))) { + assert(r == sizeof(struct tag_container)); + freeMpdTag(tc.tag); + } + pthread_mutex_unlock(&read_lock); } -- cgit v1.2.3