diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-09-29 12:15:16 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-09-29 12:15:16 +0200 |
commit | 52a0ea2dc54b98a36923dbe92671eec4c055b11f (patch) | |
tree | 7c5cee5f5c1a4b3cd387ce98588bb8b07933471f /src/directory.c | |
parent | 88aaa6b759daf02706daddb7a7a7fde83f76c592 (diff) | |
download | mpd-52a0ea2dc54b98a36923dbe92671eec4c055b11f.tar.gz mpd-52a0ea2dc54b98a36923dbe92671eec4c055b11f.tar.xz mpd-52a0ea2dc54b98a36923dbe92671eec4c055b11f.zip |
directory: update playlist version if updated
If we updated the mpd metadata database; then there's a chance
some of those songs in the playlist will have updated metadata.
So be on the safe side and increment the playlist version number
if _any_ song changed (this is how all released versions of mpd
did it, too).
This bug was introduced recently when making "update" threaded.
Thanks to stonecrest for the bug report.
Diffstat (limited to 'src/directory.c')
-rw-r--r-- | src/directory.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/directory.c b/src/directory.c index 64d55e7ee..31b1e9a80 100644 --- a/src/directory.c +++ b/src/directory.c @@ -123,9 +123,14 @@ int isUpdatingDB(void) void reap_update_task(void) { + enum update_return ret; + if (progress != UPDATE_PROGRESS_DONE) return; - pthread_join(update_thr, NULL); + if (pthread_join(update_thr, (void **)&ret)) + FATAL("error joining update thread: %s\n", strerror(errno)); + if (ret == UPDATE_RETURN_UPDATED) + playlistVersionChange(); progress = UPDATE_PROGRESS_IDLE; } |