Changeset 5495:36aa1130091a for imap
Legend:
- Unmodified
- Added
- Removed
-
imap/command.c
r5494 r5495 158 158 { 159 159 /* first command in queue has finished - move queue pointer up */ 160 idata->lastcmd = (idata->lastcmd + 1) % IMAP_PIPELINE_DEPTH;160 idata->lastcmd = (idata->lastcmd + 1) % idata->cmdslots; 161 161 } 162 162 cmd->state = cmd_status (idata->buf); … … 169 169 } 170 170 171 c = (c + 1) % IMAP_PIPELINE_DEPTH;171 c = (c + 1) % idata->cmdslots; 172 172 } 173 173 while (c != idata->nextcmd); … … 309 309 static int cmd_queue_full (IMAP_DATA* idata) 310 310 { 311 if ((idata->nextcmd + 1) % IMAP_PIPELINE_DEPTH== idata->lastcmd)311 if ((idata->nextcmd + 1) % idata->cmdslots == idata->lastcmd) 312 312 return 1; 313 313 … … 328 328 329 329 cmd = idata->cmds + idata->nextcmd; 330 idata->nextcmd = (idata->nextcmd + 1) % IMAP_PIPELINE_DEPTH;330 idata->nextcmd = (idata->nextcmd + 1) % idata->cmdslots; 331 331 332 332 snprintf (cmd->seq, sizeof (cmd->seq), "a%04u", idata->seqno++); -
imap/imap.c
r5494 r5495 487 487 idata->state = IMAP_DISCONNECTED; 488 488 idata->seqno = idata->nextcmd = idata->lastcmd = idata->status = 0; 489 memset (idata->cmds, 0, sizeof (IMAP_COMMAND) * IMAP_PIPELINE_DEPTH);489 memset (idata->cmds, 0, sizeof (IMAP_COMMAND) * idata->cmdslots); 490 490 } 491 491 -
imap/imap_private.h
r5494 r5495 54 54 /* number of entries in the hash table */ 55 55 #define IMAP_CACHE_LEN 10 56 57 /* number of commands that can be batched into a single request58 * ( - 1, for the easy way to detect ring buffer wrap) */59 #define IMAP_PIPELINE_DEPTH 1560 56 61 57 #define SEQLEN 5 … … 191 187 192 188 /* command queue */ 193 IMAP_COMMAND cmds[IMAP_PIPELINE_DEPTH]; 189 IMAP_COMMAND* cmds; 190 int cmdslots; 194 191 int nextcmd; 195 192 int lastcmd; -
imap/util.c
r5122 r5495 355 355 FREE (&idata); 356 356 357 idata->cmdslots = ImapPipelineDepth + 2; 358 if (!(idata->cmds = safe_calloc(idata->cmdslots, sizeof(*idata->cmds)))) 359 { 360 mutt_buffer_free(&idata->cmdbuf); 361 FREE (&idata); 362 } 363 357 364 return idata; 358 365 } … … 370 377 FREE (&(*idata)->buf); 371 378 mutt_bcache_close (&(*idata)->bcache); 379 FREE (&(*idata)->cmds); 372 380 FREE (idata); /* __FREE_CHECKED__ */ 373 381 }
