- lok::Document::setCallbackLatch: used on doument loading for
set/unset the latch
- now cell cursors of other views are correctly notified to the new
view
- lok::Document::setCallbackLatch: used by a child session for
set/unset the latch
- lok::Document::registerCallback has a new boolean parameter used for
setting the latch state just before the callback is actually
registered for a (new) view
- now cell cursors of other views are correctly notified to the new
view
Use the existing function notifyOtherSessions() to broadcast the
message.
The function also takes care of sending this message only to
active clients.
Change-Id: I98d40429de17463167a67cb10ba59381a0cbc525
A new queue with own thread now processes tile requests
so we have a chance to cull backlogged tile requests
that have since been invalidated.
This reduces load on the server significantly, especially
with multiple view at different zoom levels, and very fast
typing.
Change-Id: I6599939cd363dc71c30187f40d542aa37260dc56
Reviewed-on: https://gerrit.libreoffice.org/28607
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Iterating viewCursor object won't give correct number of live
viewids because inactive views don't receive any viewcursor
messages.
Rather use map._viewInfo object because as of now, we do receive
these 'addview' message for inactive views, so this place should
always remain updated and prevent giving inconsistent view counts
across different clients.
Change-Id: If210049e76b5f2b91371a21863f6019cbccdb9ca
Don't mention 'TerminationFlag' in the log line when that lovely
global variable isn't what we are logging there (but the local 'stop'
boolean variable). Also, output its value as "true" or "false", not
numerically.
Not sure what the stop() function should do now, if anything. Maybe
_stop should be kept and actually tested somewhere, like in the third
lambda passed to IoUtil::SocketProcessor() in Connection::run()?
Tile queue was used to process canceltiles commands.
Since those are handled by TileCache, there is no need
for queues and the threads that pump them.
But because these queues were also used to buffer between
WSD internals and clients, such that a slow client wouldn't
block WSD while sending back tiles, it is necessary
to reword that logic.
In subsequent commits that will change as well.
With this change not only do we save a thread per client,
but we also reduce latency of tile, and improve typing
responsiveness, by almost 3x or more! Latencies are
down to ~15ms from almost 50ms.
Change-Id: I9bb5856efed28caea9d4e6f94f77b093779e5241
Reviewed-on: https://gerrit.libreoffice.org/28575
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Fixes a regression introduced in
571ff06906, where every loleaflet client
ran into an error, displayed as "We are sorry, this is an unexpected
connection error. Please try again."
Found by git bisecting.