*) slight code cleanup
*) now --kill will not check for /proc/<pid>/exe (this is linux specific) git-svn-id: https://svn.musicpd.org/mpd/trunk@3063 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
41b5fedaf0
commit
aa7b698086
@ -393,21 +393,28 @@ int doIOForInterfaces() {
|
||||
struct timeval tv;
|
||||
int i;
|
||||
int selret;
|
||||
int fdmax = 0;
|
||||
int fdmax;
|
||||
|
||||
tv.tv_sec = 1;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
addInterfacesReadyToReadAndListenSocketToFdSet(&rfds,&fdmax);
|
||||
addInterfacesForBufferFlushToFdSet(&wfds,&fdmax);
|
||||
while(1) {
|
||||
fdmax = 0;
|
||||
|
||||
while((selret = select(fdmax+1,&rfds,&wfds,NULL,&tv))) {
|
||||
getConnections(&rfds);
|
||||
if(selret<0 && errno==EINTR) break;
|
||||
else if(selret<0) {
|
||||
addInterfacesReadyToReadAndListenSocketToFdSet(&rfds,&fdmax);
|
||||
addInterfacesForBufferFlushToFdSet(&wfds,&fdmax);
|
||||
|
||||
selret = select(fdmax+1,&rfds,&wfds,NULL,&tv);
|
||||
|
||||
if(selret == 0 || (selret<0 && errno==EINTR)) break;
|
||||
|
||||
if(selret<0) {
|
||||
closeNextErroredInterface();
|
||||
continue;
|
||||
}
|
||||
|
||||
getConnections(&rfds);
|
||||
|
||||
for(i=0;i<interface_max_connections;i++) {
|
||||
if(interfaces[i].open && FD_ISSET(interfaces[i].fd,&rfds)) {
|
||||
if(COMMAND_RETURN_KILL==interfaceReadInput(&(interfaces[i]))) {
|
||||
@ -420,11 +427,9 @@ int doIOForInterfaces() {
|
||||
interfaces[i].lastTime = time(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
fdmax = 0;
|
||||
addInterfacesReadyToReadAndListenSocketToFdSet(&rfds,&fdmax);
|
||||
addInterfacesForBufferFlushToFdSet(&wfds,&fdmax);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
10
src/main.c
10
src/main.c
@ -385,11 +385,11 @@ void cleanUpPidFile() {
|
||||
}
|
||||
|
||||
void killFromPidFile(char * cmd, int killOption) {
|
||||
/*char buf[32];
|
||||
struct stat st_cmd;
|
||||
struct stat st_exe;
|
||||
struct stat st_exe;*/
|
||||
ConfigParam * pidFileParam = parseConfigFilePath(CONF_PID_FILE, 1);
|
||||
int pid;
|
||||
char buf[32];
|
||||
|
||||
FILE * fp = fopen(pidFileParam->value,"r");
|
||||
if(!fp) {
|
||||
@ -405,7 +405,7 @@ void killFromPidFile(char * cmd, int killOption) {
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
memset(buf, 0, 32);
|
||||
/*memset(buf, 0, 32);
|
||||
snprintf(buf, 31, "/proc/%i/exe", pid);
|
||||
|
||||
if(killOption == 1) {
|
||||
@ -430,7 +430,7 @@ void killFromPidFile(char * cmd, int killOption) {
|
||||
cmd, pid);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if(kill(pid, SIGTERM)) {
|
||||
ERROR("unable to kill proccess %i: %s\n", pid, strerror(errno));
|
||||
@ -492,9 +492,9 @@ int main(int argc, char * argv[]) {
|
||||
readPlaylistState();
|
||||
|
||||
while(COMMAND_RETURN_KILL!=doIOForInterfaces()) {
|
||||
if(COMMAND_RETURN_KILL==handlePendingSignals()) break;
|
||||
syncPlayerAndPlaylist();
|
||||
closeOldInterfaces();
|
||||
if(COMMAND_RETURN_KILL==handlePendingSignals()) break;
|
||||
readDirectoryDBIfUpdateIsFinished();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user