浏览代码

no mutex needed for polling - release

Philippe G 4 年之前
父节点
当前提交
5aba426b98
共有 1 个文件被更改,包括 3 次插入4 次删除
  1. 3 4
      components/squeezelite/stream.c

+ 3 - 4
components/squeezelite/stream.c

@@ -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);