|  | @@ -387,11 +387,14 @@ static void process_strm(u8_t *pkt, int len) {
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			sendSTAT("STMc", 0);
 | 
	
		
			
				|  |  |  			sentSTMu = sentSTMo = sentSTMl = false;
 | 
	
		
			
				|  |  | -			LOCK_O;
 | 
	
		
			
				|  |  |  #if EMBEDDED
 | 
	
		
			
				|  |  | +			// not protected so that restore can call synchronously sink handlers
 | 
	
		
			
				|  |  |  			if (output.external) decode_restore(output.external);
 | 
	
		
			
				|  |  | +			LOCK_O;
 | 
	
		
			
				|  |  |  			output.external = 0;
 | 
	
		
			
				|  |  |  			_buf_limit(outputbuf, 0);
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +			LOCK_O;
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  			output.threshold = strm->output_threshold;
 | 
	
		
			
				|  |  |  			output.next_replay_gain = unpackN(&strm->replay_gain);
 |