Skip to content

Instantly share code, notes, and snippets.

@exodist
Created March 23, 2021 17:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save exodist/b500e72ce00369cfc0dc6db0916ce6f5 to your computer and use it in GitHub Desktop.
Save exodist/b500e72ce00369cfc0dc6db0916ce6f5 to your computer and use it in GitHub Desktop.
106 my $last_write = time;
107 $self->{stream} = sub {
108 my $responder = shift;
109 my $writer = $responder->([200, \@headers]);
110
111 my $end = 0;
112 while (!$end) {
113 $end = $done->();
114
115 my $seen = 0;
116 for my $item ($fetch->()) {
117 $writer->write($item);
118 last unless $env->{'psgix.io'}->connected;
119 $last_write = time;
120 $seen++;
121 }
122
123 unless ($seen || $end) {
124 if (time - $last_write > 1) {
125 $writer->write("\n");
126 last unless $env->{'psgix.io'}->connected;
127 }
128 sleep $wait;
129 }
130 }
131
132 $cleanup->() if $cleanup;
133 $writer->close;
134 };
135 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment