|  | @@ -199,7 +199,6 @@ static void *stream_thread() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			polling = true;
 | 
	
		
			
				|  |  |  			pollinfo.fd = fd;
 | 
	
		
			
				|  |  |  			pollinfo.events = POLLIN;
 | 
	
		
			
				|  |  |  			if (stream.state == SEND_HEADERS) {
 | 
	
	
		
			
				|  | @@ -208,6 +207,8 @@ static void *stream_thread() {
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		UNLOCK;
 | 
	
		
			
				|  |  | +		// no mutex needed - we just want to know if we are inside poll()
 | 
	
		
			
				|  |  | +		polling = true;
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  |  		if (_poll(ssl, &pollinfo, 100)) {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -364,7 +365,6 @@ static void *stream_thread() {
 | 
	
		
			
				|  |  |  			UNLOCK;
 | 
	
		
			
				|  |  |  			
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  | -			// it is safe to set it unlocked
 | 
	
		
			
				|  |  |  			polling = false;
 | 
	
		
			
				|  |  |  			LOG_SDEBUG("poll timeout");
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -490,8 +490,7 @@ void stream_sock(u32_t ip, u16_t port, const char *header, size_t header_len, un
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if EMBEDDED
 | 
	
		
			
				|  |  |  	// wait till we are not polling anymore
 | 
	
		
			
				|  |  | -	for (LOCK; running && polling; UNLOCK, usleep(10000), LOCK);
 | 
	
		
			
				|  |  | -	UNLOCK;
 | 
	
		
			
				|  |  | +	while (polling && running) { usleep(10000);	}	
 | 
	
		
			
				|  |  |  #endif	
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	int sock = socket(AF_INET, SOCK_STREAM, 0);
 |