Fixed left-over stream state problems

This commit is contained in:
Thulinma 2017-11-07 11:09:27 +01:00
parent 82809b4617
commit 7d6bdb5553

View file

@ -118,13 +118,15 @@ namespace Mist {
snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str()); snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str());
streamStatus.init(pageName, 1, true, false); streamStatus.init(pageName, 1, true, false);
if (streamStatus){streamStatus.mapped[0] = STRMSTAT_INIT;} if (streamStatus){streamStatus.mapped[0] = STRMSTAT_INIT;}
streamStatus.master = false;
streamStatus.close();
} }
config->activate(); config->activate();
uint64_t reTimer = 0; uint64_t reTimer = 0;
while (config->is_active){ while (config->is_active){
pid_t pid = fork(); pid_t pid = fork();
if (pid == 0){ if (pid == 0){
//Re-init streamStatus to fix Cygwin issues //Re-init streamStatus, previously closed
char pageName[NAME_BUFFER_SIZE]; char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str()); snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str());
streamStatus.init(pageName, 1, false, false); streamStatus.init(pageName, 1, false, false);
@ -152,6 +154,9 @@ namespace Mist {
MEDIUM_MSG("Input for stream %s shut down cleanly", streamName.c_str()); MEDIUM_MSG("Input for stream %s shut down cleanly", streamName.c_str());
break; break;
} }
char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str());
streamStatus.init(pageName, 1, true, false);
if (streamStatus){streamStatus.mapped[0] = STRMSTAT_INVALID;} if (streamStatus){streamStatus.mapped[0] = STRMSTAT_INVALID;}
#if DEBUG >= DLVL_DEVEL #if DEBUG >= DLVL_DEVEL
WARN_MSG("Aborting autoclean; this is a development build."); WARN_MSG("Aborting autoclean; this is a development build.");
@ -169,6 +174,11 @@ namespace Mist {
playerLock.unlink(); playerLock.unlink();
playerLock.close(); playerLock.close();
} }
char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_STREAM_STATE, streamName.c_str());
streamStatus.init(pageName, 1, true, false);
streamStatus.close();
HIGH_MSG("Angel process for %s exiting", streamName.c_str());
return 0; return 0;
} }