diff --git a/tsdb/head_wal.go b/tsdb/head_wal.go
index a8232ff7d3..fecbb757f6 100644
--- a/tsdb/head_wal.go
+++ b/tsdb/head_wal.go
@@ -438,10 +438,9 @@ func (wp *walSubsetProcessor) waitUntilIdle() {
 	}
 	wp.input <- []record.RefSample{}
 	for len(wp.input) != 0 {
-		time.Sleep(10 * time.Microsecond)
 		select {
 		case <-wp.output: // Allow output side to drain to avoid deadlock.
-		default:
+		case <-time.After(10 * time.Microsecond):
 		}
 	}
 }