2004-04-06 06:38:55 +02:00
|
|
|
1) non-blocking (for other clients) update
|
|
|
|
a) have two commands, one that blocks and returns updated info and another command that doesn't block
|
|
|
|
b) allow incremental updating, either a directory recursively or a specific song
|
2004-04-06 15:13:54 +02:00
|
|
|
c) fork on update
|
|
|
|
d) have a special case where if a update is in a command list, it only forks at the beginning of the list, and writes at the end of the command list
|
|
|
|
e) add an element to status stating the "update state"
|
2004-04-07 13:54:22 +02:00
|
|
|
f) before a fork, the parent gets the position at the end of the db file
|
|
|
|
g) update child will dump changes to end of db file, this can effectively be a journal
|
|
|
|
h) parent reads changes at end of db file when update child is done
|
|
|
|
i) when mpd exits, dump the current db to the file, this will erase an journal entries
|
|
|
|
j) if there are journal entries on mpd start up, read the changes, then dump the entired db back to disk, and elimanate journal entries
|
|
|
|
|
2004-04-06 15:13:54 +02:00
|
|
|
|
|
|
|
2) rewrite interface stuff, specifically command list handling etc so its less of a hack and deals with the above update stuff better
|