From c77011bf2a2521b97024e0fd1ca48c5a73439175 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Sun, 11 Apr 2004 03:12:00 +0000 Subject: update job id stuff git-svn-id: https://svn.musicpd.org/mpd/trunk@673 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/command.c | 5 ++++- src/directory.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/command.c b/src/command.c index 4259b58e7..f61cb7630 100644 --- a/src/command.c +++ b/src/command.c @@ -165,6 +165,7 @@ int commandStatus(FILE * fp, unsigned int * permission, int argArrayLength, char ** argArray) { char * state = NULL; + int updateJobId; playPlaylistIfPlayerStopped(); switch(getPlayerState()) { @@ -194,7 +195,9 @@ int commandStatus(FILE * fp, unsigned int * permission, int argArrayLength, myfprintf(fp,"%s: %u:%i:%i\n",COMMAND_STATUS_AUDIO,getPlayerSampleRate(),getPlayerBits(),getPlayerChannels()); } - if(isUpdatingDB()) myfprintf(fp,"%s: 1\n",COMMAND_STATUS_UPDATING_DB); + if((updateJobId = isUpdatingDB())) { + myfprintf(fp,"%s: %i\n",COMMAND_STATUS_UPDATING_DB,updateJobId); + } if(getPlayerError()!=PLAYER_ERROR_NOERROR) { myfprintf(fp,"%s: %s\n",COMMAND_STATUS_ERROR,getPlayerErrorStr()); diff --git a/src/directory.c b/src/directory.c index 7ecc5bd62..17d91631c 100644 --- a/src/directory.c +++ b/src/directory.c @@ -29,6 +29,7 @@ #include "listen.h" #include "interface.h" #include "volume.h" +#include "mpd_types.h" #include #include @@ -72,6 +73,8 @@ char directorydb[MAXPATHLEN+1]; int directory_updatePid = 0; +mpd_uint16 directory_updateJobId = 0; + DirectoryList * newDirectoryList(); int addToDirectory(Directory * directory, char * shortname, char * name); @@ -89,7 +92,7 @@ void deleteEmptyDirectoriesInDirectory(Directory * directory); int addSubDirectoryToDirectory(Directory * directory, char * shortname, char * name); int isUpdatingDB() { - if(directory_updatePid>0) return 1; + if(directory_updatePid>0) return directory_updateJobId; return 0; } @@ -143,7 +146,11 @@ int updateInit(FILE * fp) { return -1; } - DEBUG("updateInit: fork()'d update child\n"); + directory_updateJobId++; + if(directory_updateJobId > 1<<15) directory_updateJobId = 1; + DEBUG("updateInit: fork()'d update child for update job id %i\n", + (int)directory_updateJobId); + myfprintf(fp,"updating_db: %i\n",(int)directory_updateJobId); return 0; } -- cgit v1.2.3