Compare commits
42 commits
Author | SHA1 | Date | |
---|---|---|---|
|
1414e709e3 | ||
|
b9e7b100a2 | ||
|
a8243d2d51 | ||
|
a41545a781 | ||
|
c7b4e34cf9 | ||
|
e3f90afc62 | ||
|
f02d4d094d | ||
|
7c2c11fdd8 | ||
|
baee4acde1 | ||
|
cdf05077fe | ||
|
deb64d113e | ||
|
e41d35180e | ||
|
fe8395c2cd | ||
|
d89d189bd3 | ||
|
d6592053e9 | ||
|
387c368b8c | ||
|
6288682173 | ||
|
f5a8f7ba2d | ||
|
c127d48308 | ||
|
40ae91a45c | ||
|
3c319ea732 | ||
|
91e4f4f885 | ||
|
7e03886886 | ||
|
1caac640da | ||
|
b03947917a | ||
|
3258842d0c | ||
|
ff684ba8ea | ||
|
f5b5838c4d | ||
|
2007b1c586 | ||
|
5a90aa50f1 | ||
|
36f2422650 | ||
|
6ed176ba45 | ||
|
9486abca22 | ||
|
1a3624f45f | ||
|
4f44d08816 | ||
|
47896ae170 | ||
|
c648f4af9d | ||
|
bb327870f7 | ||
|
4fcf2cbf85 | ||
|
92e6839d46 | ||
|
c4923b6ed8 | ||
|
ba14196856 |
|
@ -18,6 +18,8 @@ defmodule Pleroma.Web.MastodonAPI.WebsocketHandler do
|
|||
@timeout :timer.seconds(60)
|
||||
# Hibernate every X messages
|
||||
@hibernate_every 100
|
||||
# Tune garabge collect for long-lived websocket process
|
||||
@fullsweep_after 20
|
||||
|
||||
def init(%{qs: qs} = req, state) do
|
||||
with params <- Enum.into(:cow_qs.parse_qs(qs), %{}),
|
||||
|
@ -59,6 +61,10 @@ defmodule Pleroma.Web.MastodonAPI.WebsocketHandler do
|
|||
"#{__MODULE__} accepted websocket connection for user #{(state.user || %{id: "anonymous"}).id}, topic #{state.topic}"
|
||||
)
|
||||
|
||||
# process is long-lived and can sometimes accumulate stale data in such a way it's
|
||||
# not freed by young garbage cycles, thus make full collection sweeps more frequent
|
||||
:erlang.process_flag(:fullsweep_after, @fullsweep_after)
|
||||
|
||||
Streamer.add_socket(state.topic, state.oauth_token)
|
||||
{:ok, %{state | timer: timer()}}
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue