yield when doing b64 encode to avoid stealing the cpu on single proc crappy hardware

This commit is contained in:
Anthony Minessale 2011-09-08 16:46:10 -05:00
parent 2e6ce02462
commit 7d612da440
1 changed files with 5 additions and 0 deletions

View File

@ -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;