MINOR: threads: avoid clearing harmless twice in thread_release()

thread_release() is to be called after thread_isolate(), i.e. when the
thread already has its harmless bit cleared. No need to clear it twice,
thus avoid calling thread_harmless_end() and directly check the rdv
bits then loop on them.
diff --git a/src/hathreads.c b/src/hathreads.c
index 8359dd5..006a089 100644
--- a/src/hathreads.c
+++ b/src/hathreads.c
@@ -94,7 +94,12 @@
 void thread_release()
 {
 	_HA_ATOMIC_AND(&threads_want_rdv_mask, ~tid_bit);
-	thread_harmless_end();
+	while (threads_want_rdv_mask & all_threads_mask) {
+		_HA_ATOMIC_OR(&threads_harmless_mask, tid_bit);
+		while (threads_want_rdv_mask & all_threads_mask)
+			ha_thread_relax();
+		HA_ATOMIC_AND(&threads_harmless_mask, ~tid_bit);
+	}
 }
 
 /* send signal <sig> to thread <thr> */