changeset 9279:2da7dec937d4 HEAD

imap: When multiple commands are pipelined, try harder to combine their mailbox syncing together.
author Timo Sirainen <tss@iki.fi>
date Thu, 14 May 2009 17:20:51 -0400
parents e7a3c0e6ba0f
children 8e7809057f85
files src/imap/imap-client.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-client.c	Thu May 14 14:22:35 2009 -0400
+++ b/src/imap/imap-client.c	Thu May 14 17:20:51 2009 -0400
@@ -402,7 +402,8 @@
 
 	cmd = new_cmd->client->command_queue;
 	for (; cmd != NULL; cmd = cmd->next) {
-		if (cmd != new_cmd && (cmd->cmd_flags & flags) != 0)
+		if (cmd->state < CLIENT_COMMAND_STATE_WAIT_SYNC &&
+		    cmd != new_cmd && (cmd->cmd_flags & flags) != 0)
 			return cmd;
 	}
 	return NULL;
@@ -745,7 +746,8 @@
 		if (!handled_commands)
 			return FALSE;
 
-		ret = cmd_sync_delayed(client);
+		ret = client->input_lock != NULL ? TRUE :
+			cmd_sync_delayed(client);
 		if (ret)
 			client_continue_pending_input(&client);
 		return TRUE;