فهرست منبع

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 10 سال پیش
والد
کامیت
9eba3d8cd9
1فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  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: