Index: benchmark/io/http/worker.cfa
===================================================================
--- benchmark/io/http/worker.cfa	(revision f3da20574375f188154dd595c867de3dc93d676e)
+++ benchmark/io/http/worker.cfa	(revision 10ba0125bc9d6e80f483f1c2ef162c040c1b0ed7)
@@ -26,5 +26,5 @@
 
 		// Read the http request
-		if( options.log ) sout | "=== Reading request ===";
+		if( options.log ) mutex(sout) sout | "=== Reading request ===";
 		[code, closed, file, name_size] = http_read(fd, buffer, len, f);
 		f = 0p;
@@ -41,15 +41,15 @@
 
 		if(0 == strncmp(file, "plaintext", min(name_size, sizeof("plaintext") ))) {
-			if( options.log ) sout | "=== Request for /plaintext ===";
+			if( options.log ) mutex(sout) sout | "=== Request for /plaintext ===";
 
 			int ret = answer_plaintext(fd);
 			if( ret == -ECONNRESET ) break REQUEST;
 
-			if( options.log ) sout | "=== Answer sent ===";
+			if( options.log ) mutex(sout) sout | "=== Answer sent ===";
 			continue REQUEST;
 		}
 
 		if(0 == strncmp(file, "ping", min(name_size, sizeof("ping") ))) {
-			if( options.log ) sout | "=== Request for /ping ===";
+			if( options.log ) mutex(sout) sout | "=== Request for /ping ===";
 
 			// Send the header
@@ -57,5 +57,5 @@
 			if( ret == -ECONNRESET ) break REQUEST;
 
-			if( options.log ) sout | "=== Answer sent ===";
+			if( options.log ) mutex(sout) sout | "=== Answer sent ===";
 			continue REQUEST;
 		}
@@ -97,5 +97,5 @@
 		if( ret == -ECONNRESET ) break REQUEST;
 
-		if( options.log ) sout | "=== Answer sent ===";
+		if( options.log ) mutex(sout) sout | "=== Answer sent ===";
 	}
 
@@ -103,5 +103,5 @@
 		unsigned long long next = rdtscl();
 		if(next > (last + 500000000)) {
-			if(try_lock(stats_thrd->stats.lock)) {
+			if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
 				push(this.stats.sendfile, stats_thrd->stats.send);
 				unlock(stats_thrd->stats.lock);
@@ -127,5 +127,5 @@
 	/* paranoid */ assert( this.conn.pipe[1] != -1 );
 	for() {
-		if( options.log ) sout | "=== Accepting connection ===";
+		if( options.log ) mutex(sout) sout | "=== Accepting connection ===";
 		int fd = cfa_accept4( this.sockfd, this.[addr, addrlen, flags], CFA_IO_LAZY );
 		if(fd < 0) {
@@ -136,10 +136,10 @@
 		if(this.done) break;
 
-		if( options.log ) sout | "=== New connection" | fd | "" | ", waiting for requests ===";
+		if( options.log ) mutex(sout) sout | "=== New connection" | fd | "" | ", waiting for requests ===";
 		size_t len = options.socket.buflen;
 		char buffer[len];
 		handle_connection( this.conn, fd, buffer, len, 0p, last );
 
-		if( options.log ) sout | "=== Connection closed ===";
+		if( options.log ) mutex(sout) sout | "=== Connection closed ===";
 	}
 }
@@ -164,12 +164,13 @@
 		char buffer[len];
 		PendingRead p;
+		p.next = 0p;
 		p.in.buf = (void*)buffer;
 		p.in.len = len;
 		push(*this.queue, &p);
 
-		if( options.log ) sout | "=== Waiting new connection ===";
+		if( options.log ) mutex(sout) sout | "=== Waiting new connection ===";
 		handle_connection( this.conn, p.out.fd, buffer, len, &p.f, last );
 
-		if( options.log ) sout | "=== Connection closed ===";
+		if( options.log ) mutex(sout) sout | "=== Connection closed ===";
 		if(this.done) break;
 	}
@@ -181,5 +182,5 @@
 
 void ?{}( Acceptor & this ) {
-	((thread&)this){ "Server Worker Thread", *options.clopts.instance, 64000 };
+	((thread&)this){ "Server Acceptor Thread", *options.clopts.instance, 64000 };
 	options.clopts.thrd_cnt++;
 	this.done = false;
