ZIm/crates/collab/src
Piotr Osiewicz 1b3b825c7f
lsp: Parse LSP messages on background thread - again (#23122)
This is a follow-up to #12640.
While profiling latency of working with a project with 8192 diagnostics
I've noticed that while we're parsing the LSP messages into a generic
message struct on a background thread, we can still block the main
thread as the conversion between that generic message struct and the
actual LSP message (for use by callback) is still happening on the main
thread.
This PR significantly constrains what a message callback can use, so
that it can be executed on any thread; we also send off message
conversion to the background thread. In practice new callback
constraints were already satisfied by all call sites, so no code outside
of the lsp crate had to be adjusted.

This has improved throughput of my 8192-benchmark from 40s to send out
all diagnostics after saving to ~20s. Now main thread is spending most
of the time updating our diagnostics sets, which can probably be
improved too.

Closes #ISSUE

Release Notes:

- Improved app responsiveness with huge # of diagnostics.
2025-01-14 13:50:54 +00:00
..
api collab: Prevent users from creating a new subscription when they have overdue subscriptions (#22870) 2025-01-08 22:50:48 +00:00
bin Fix .env.toml paths (#15645) 2024-08-01 15:43:29 -04:00
db collab: Prevent users from creating a new subscription when they have overdue subscriptions (#22870) 2025-01-08 22:50:48 +00:00
llm Include outline when predicting edits with Zeta (#22895) 2025-01-09 14:26:33 +00:00
rpc Remove dev servers (#19638) 2024-10-24 12:14:03 -06:00
tests lsp: Parse LSP messages on background thread - again (#23122) 2025-01-14 13:50:54 +00:00
api.rs Send llm events to snowflake too (#21091) 2024-11-22 20:40:39 -07:00
auth.rs Remove dev servers (#19638) 2024-10-24 12:14:03 -06:00
cents.rs Send llm events to snowflake too (#21091) 2024-11-22 20:40:39 -07:00
completion.rs Supermaven (#10788) 2024-05-03 12:50:42 -07:00
db.rs ssh remoting: Show the host's GitHub name in the titlebar when sharing an SSH project (#19844) 2024-10-29 09:52:54 +01:00
env.rs collab: Add support for reading boolean values from .env.toml (#16317) 2024-08-15 17:07:17 -04:00
errors.rs Remove more unused code related to GitHub auth and errors 2022-04-21 08:57:49 -06:00
executor.rs Remove 2 suffix for collab, rope, settings, menu 2024-01-03 12:29:16 -08:00
lib.rs Stop sending data to Clickhouse (#21763) 2024-12-10 08:47:29 -07:00
llm.rs Add more metrics for Fireworks Completion Requested (#23062) 2025-01-13 12:04:28 +00:00
main.rs Fix crash in collab when sending worktree updates (#19678) 2024-10-24 15:57:24 +02:00
migrations.rs collab: Remove unused parameter to run_database_migrations (#15883) 2024-08-06 17:31:52 -04:00
rate_limiter.rs chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
rpc.rs Start to split out initialization and registration (#21787) 2024-12-11 14:05:10 -07:00
seed.rs collab: Seed GitHub users from static data (#18301) 2024-09-24 16:35:09 -04:00
stripe_billing.rs collab: Anchor new subscription's billing cycle to the first of the month (#19367) 2024-10-17 10:18:12 -04:00
tests.rs Use LiveKit's Rust SDK on Linux while continue using Swift SDK on Mac (#21550) 2024-12-05 15:06:17 -08:00
user_backfiller.rs collab: Require github_user_created_at at ingress points (#17180) 2024-08-30 17:09:59 -04:00