本文想要完成对twemproxy发送流程——msg_send的探索,对于twemproxy发送流程的数据结构已经在《twemproxy接收流程探索——剖析twemproxy代码正编》介绍过了,msg_send和msg_recv的流程大致类似。请在阅读代码时,查看注释,英文注释是作者对它的代码的注解,中文注释是我自己的感悟。

函数msg_send

seo优化培训,网络推广培训,网络营销培训,SEM培训,网络优化,在线营销培训

 1 rstatus_t 2 msg_send(struct context *ctx, struct conn *conn) 3 { 4     rstatus_t status; 5     struct msg *msg; 6     /*表示活跃的发送状态*/ 7     ASSERT(conn->send_active); 8     /*表示准备发送*/ 9     conn->send_ready = 1;10     do {11         /*获取下一次发送的msg开头*/12         msg = conn->send_next(ctx, conn);13         if (msg == NULL) {14             /* nothing to send */15             return NC_OK;16         }17    &nb