Explorar el Código

don't leave 2nd store in limbo if opening 1st store fails synchronously

we can't leave the store FRESH, as otherwise the error handling code
will assume it is still being opened and will return to the main loop.
depending on the config this would cause an immediate termination or an
indefinite wait.
Oswald Buddenhagen hace 10 años
padre
commit
9eba3d8cd9
Se han modificado 1 ficheros con 6 adiciones y 2 borrados
  1. 6 2
      src/main.c

+ 6 - 2
src/main.c

@@ -593,12 +593,16 @@ sync_chans( main_vars_t *mvars, int ent )
 			labels[M] = "M: ", labels[S] = "S: ";
 		else
 			labels[M] = labels[S] = "";
-		for (t = 0; t < 2; t++) {
+		for (t = 0; ; t++) {
 			info( "Opening %s %s...\n", str_ms[t], mvars->chan->stores[t]->name );
 			mvars->drv[t] = mvars->chan->stores[t]->driver;
 			mvars->drv[t]->open_store( mvars->chan->stores[t], labels[t], store_opened, AUX );
-			if (mvars->skip)
+			if (t)
 				break;
+			if (mvars->skip) {
+				mvars->state[1] = ST_CLOSED;
+				break;
+			}
 		}
 		mvars->cben = 1;
 	  opened: