From 33ec39a21f1d5819ce62288c49492c05a2d25990 Mon Sep 17 00:00:00 2001 From: Kezhu Wang Date: Fri, 21 Jun 2013 22:55:50 +0800 Subject: [PATCH 1/2] bugfix: mistake when linking write_buffer to existing list in socket service --- service-src/service_socket.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/service-src/service_socket.c b/service-src/service_socket.c index fe4be199c..5f320d23d 100644 --- a/service-src/service_socket.c +++ b/service-src/service_socket.c @@ -318,10 +318,11 @@ try_send(struct skynet_context *ctx, struct socket_pool *p, uint32_t source, con } if (s->head) { struct write_buffer * buf = malloc(sizeof(*buf)); - buf->next = s->tail; + buf->next = NULL; buf->ptr = (char *)(msg+1); buf->buffer = (void *)msg; buf->sz = sz; + s->tail->next = buf; s->tail = buf; return 1; } From 5cec366f7c3c4077677dc16ea7a2237b1ba9093d Mon Sep 17 00:00:00 2001 From: Kezhu Wang Date: Sat, 22 Jun 2013 01:05:40 +0800 Subject: [PATCH 2/2] a little improvement to previous commit --- service-src/service_socket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/service-src/service_socket.c b/service-src/service_socket.c index 5f320d23d..6e0479882 100644 --- a/service-src/service_socket.c +++ b/service-src/service_socket.c @@ -318,10 +318,12 @@ try_send(struct skynet_context *ctx, struct socket_pool *p, uint32_t source, con } if (s->head) { struct write_buffer * buf = malloc(sizeof(*buf)); - buf->next = NULL; buf->ptr = (char *)(msg+1); buf->buffer = (void *)msg; buf->sz = sz; + assert(s->tail != NULL); + assert(s->tail->next == NULL); + buf->next = s->tail->next; s->tail->next = buf; s->tail = buf; return 1;