parent
c7f53b7493
commit
be8d2b037d
@ -692,9 +692,18 @@ static int uploadstreamed(void *userdata, hyper_context *ctx,
|
||||
data->state.hresult = result;
|
||||
return HYPER_POLL_ERROR;
|
||||
}
|
||||
if(!fillcount)
|
||||
/* done! */
|
||||
*chunk = NULL;
|
||||
if(!fillcount) {
|
||||
if((data->req.keepon & KEEP_SEND_PAUSE) != KEEP_SEND_PAUSE)
|
||||
/* done! */
|
||||
*chunk = NULL;
|
||||
else {
|
||||
/* paused, save a waker */
|
||||
if(data->hyp.send_body_waker)
|
||||
hyper_waker_free(data->hyp.send_body_waker);
|
||||
data->hyp.send_body_waker = hyper_context_waker(ctx);
|
||||
return HYPER_POLL_PENDING;
|
||||
}
|
||||
}
|
||||
else {
|
||||
hyper_buf *copy = hyper_buf_copy((uint8_t *)data->state.ulbuf, fillcount);
|
||||
if(copy)
|
||||
|
||||
@ -36,6 +36,7 @@ struct hyptransfer {
|
||||
const hyper_executor *exec;
|
||||
hyper_task *endtask;
|
||||
hyper_waker *exp100_waker;
|
||||
hyper_waker *send_body_waker;
|
||||
};
|
||||
|
||||
size_t Curl_hyper_recv(void *userp, hyper_context *ctx,
|
||||
|
||||
10
lib/easy.c
10
lib/easy.c
@ -1132,6 +1132,16 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_HYPER
|
||||
if(!(newstate & KEEP_SEND_PAUSE)) {
|
||||
/* need to wake the send body waker */
|
||||
if(data->hyp.send_body_waker) {
|
||||
hyper_waker_wake(data->hyp.send_body_waker);
|
||||
data->hyp.send_body_waker = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* if there's no error and we're not pausing both directions, we want
|
||||
to have this handle checked soon */
|
||||
if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) !=
|
||||
|
||||
@ -69,10 +69,6 @@
|
||||
565
|
||||
579
|
||||
587
|
||||
670
|
||||
671
|
||||
672
|
||||
673
|
||||
# 1021 re-added here due to flakiness
|
||||
1021
|
||||
1117
|
||||
|
||||
Loading…
Reference in New Issue
Block a user