PT_START(&s->socketpt);
PT_BEGIN(&s->socketpt);
PT_THREAD(socket_send(struct socket *s, char *buf, unsigned int len)){  PT_START(&s->socketpt);  if(len == 0) {    PT_EXIT(&s->socketpt);  }    s->sendptr = buf;  s->sendlen = len;    while(s->sendlen > 0) {    PT_WAIT_UNTIL(&s->socketpt, data_sent(s) && send_data(s));  }  PT_EXIT(&s->socketpt);}