From 6f2d7dc1d1feb62dffcb652e34a487f1a31928f7 Mon Sep 17 00:00:00 2001
From: James Lee <egypt@metasploit.com>
Date: Tue, 28 Feb 2012 20:50:42 -0700
Subject: [PATCH] Add the usleep back in

MM convinced me.
---
 c/meterpreter/source/common/arch/posix/scheduler.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/c/meterpreter/source/common/arch/posix/scheduler.c b/c/meterpreter/source/common/arch/posix/scheduler.c
index f590793d..12e26dec 100644
--- a/c/meterpreter/source/common/arch/posix/scheduler.c
+++ b/c/meterpreter/source/common/arch/posix/scheduler.c
@@ -243,6 +243,10 @@ scheduler_run(THREAD *thread)
 			//	&scheduler_cond, LIST_EMPTY(&WEHead), polltable == NULL);
 
 			pthread_cond_wait(&scheduler_cond, &scheduler_mutex);
+
+			// pthread_cond_wait still chews CPU in some cases, usleep to yield
+			// processor so we don't just spin.
+			usleep(1000);
 		}
 
 		LIST_FOREACH(current, &WEHead, link) {