changeset 9027:421393827a81 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:02 -0400
parents cbeae4ef9af5
children fa9bc4ef6f32
files src/imap/client.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/client.c	Wed May 13 13:32:13 2009 -0400
+++ b/src/imap/client.c	Thu May 14 17:20:02 2009 -0400
@@ -376,7 +376,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;
@@ -718,7 +719,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;