Skip to content

Commit

Permalink
Experimental pause/resume throttling
Browse files Browse the repository at this point in the history
  • Loading branch information
uNetworkingAB committed Dec 14, 2021
1 parent e7d8355 commit 6dc4a11
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/AsyncSocket.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,26 @@ struct AsyncSocket {
us_socket_shutdown(SSL, (us_socket_t *) this);
}

/* Experimental pause (todo: move to uSockets as us_socket_pause) */
us_socket_t *uv_pause() {
struct us_poll_t *p = (struct us_poll_t *) this;
struct us_loop_t *loop = us_socket_context_loop(SSL, us_socket_context(SSL, (us_socket_t *) this));
//int events = us_poll_events(p);
us_poll_change(p, loop, 0);
return (us_socket_t *) this;
}

/* Experimental resume (kind of needs to know the size of write buffer) */
us_socket_t *uv_resume() {
struct us_poll_t *p = (struct us_poll_t *) this;
struct us_loop_t *loop = us_socket_context_loop(SSL, us_socket_context(SSL, (us_socket_t *) this));
// only valid for libuv
int events = getBufferedAmount() ? 1 | 2 : 1;

us_poll_change(p, loop, events);
return (us_socket_t *) this;
}

/* Immediately close socket */
us_socket_t *close() {
return us_socket_close(SSL, (us_socket_t *) this, 0, nullptr);
Expand Down
10 changes: 10 additions & 0 deletions src/HttpResponse.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,16 @@ struct HttpResponse : public AsyncSocket<SSL> {
using Super::getRemoteAddressAsText;
using Super::getNativeHandle;

HttpResponse *pause() {
Super::uv_pause();
return this;
}

HttpResponse *resume() {
Super::uv_resume();
return this;
}

/* Note: Headers are not checked in regards to timeout.
* We only check when you actively push data or end the request */

Expand Down

0 comments on commit 6dc4a11

Please sign in to comment.