From 7d612da4405276f26e1bf86c867219a96d7b3c43 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 8 Sep 2011 16:46:10 -0500 Subject: [PATCH] yield when doing b64 encode to avoid stealing the cpu on single proc crappy hardware --- src/switch_utils.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/switch_utils.c b/src/switch_utils.c index 7d6fc21f55..3b9ad79c2f 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -465,6 +465,10 @@ SWITCH_DECLARE(switch_status_t) switch_b64_encode(unsigned char *in, switch_size for (x = 0; x < ilen; x++) { b = (b << 8) + in[x]; l += 8; + + if ((X % 1024) == 0) { + switch_cond_next(); /* give other processes/threads a chance */ + } while (l >= 6) { out[bytes++] = switch_b64_table[(b >> (l -= 6)) % 64]; if (++y != 72) { @@ -641,6 +645,7 @@ SWITCH_DECLARE(switch_bool_t) switch_simple_email(const char *to, } while ((ilen = read(ifd, in, B64BUFFLEN))) { + switch_cond_next(); /* give other processes/threads a chance */ for (x = 0; x < ilen; x++) { b = (b << 8) + in[x]; l += 8;