# HG changeset patch # User Timo Sirainen # Date 1242336002 14400 # Node ID 421393827a81c41c665da79c5e7d116e4793fc6b # Parent cbeae4ef9af553c910fc874079ed3de3f2178dd2 imap: When multiple commands are pipelined, try harder to combine their mailbox syncing together. diff -r cbeae4ef9af5 -r 421393827a81 src/imap/client.c --- 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;