]> Cypherpunks repositories - gostls13.git/commitdiff
another try at clearing
authorKen Thompson <ken@golang.org>
Wed, 7 Apr 2010 00:33:43 +0000 (17:33 -0700)
committerKen Thompson <ken@golang.org>
Wed, 7 Apr 2010 00:33:43 +0000 (17:33 -0700)
channel recv data.

R=rsc
CC=golang-dev
https://golang.org/cl/896041

src/pkg/runtime/chan.c

index 1f4dd0e1c4a532ff9b0e414947ab5d04295acb6d..5793159062435166058b9255a56f9eb89e72f117 100644 (file)
@@ -781,10 +781,9 @@ loop:
                        sel, c, cas, cas->send, o);
 
        if(!cas->send) {
-               if(cas->u.elemp != nil) {
+               if(cas->u.elemp != nil)
                        c->elemalg->copy(c->elemsize, cas->u.elemp, sg->elem);
-                       c->elemalg->copy(c->elemsize, sg->elem, nil);
-               }
+               c->elemalg->copy(c->elemsize, sg->elem, nil);
        }
 
        freesg(c, sg);
@@ -792,10 +791,9 @@ loop:
 
 asyncrecv:
        // can receive from buffer
-       if(cas->u.elemp != nil) {
+       if(cas->u.elemp != nil)
                c->elemalg->copy(c->elemsize, cas->u.elemp, c->recvdataq->elem);
-               c->elemalg->copy(c->elemsize, c->recvdataq->elem, nil);
-       }
+       c->elemalg->copy(c->elemsize, c->recvdataq->elem, nil);
        c->recvdataq = c->recvdataq->link;
        c->qcount--;
        sg = dequeue(&c->sendq, c);
@@ -824,10 +822,9 @@ syncrecv:
        // can receive from sleeping sender (sg)
        if(debug)
                printf("syncrecv: sel=%p c=%p o=%d\n", sel, c, o);
-       if(cas->u.elemp != nil) {
+       if(cas->u.elemp != nil)
                c->elemalg->copy(c->elemsize, cas->u.elemp, sg->elem);
-               c->elemalg->copy(c->elemsize, sg->elem, nil);
-       }
+       c->elemalg->copy(c->elemsize, sg->elem, nil);
        gp = sg->g;
        gp->param = sg;
        ready(gp);