ladybird/Userland/Services
Andreas Kling 4f224b15ed CrashDaemon+CrashReporter: Streamline crash reporting a little bit
Before this patch, this is what would happen after something crashed:

1. CrashDaemon finds a new coredump in /tmp
2. CrashDaemon compresses the new coredump (gzip)
3. CrashDaemon parses the uncompressed coredump and prints a backtrace
4. CrashDaemon launches CrashReporter
5. CrashReporter parses the uncompressed coredump (again)
6. CrashReporter unlinks the uncompressed coredump
7. CrashReporter displays a GUI

This was taking quite a long time when dealing with large programs
crashing (like Browser's WebContent processes.)

The new flow:

1. CrashDaemon finds a new coredump in /tmp
2. CrashDaemon mmap()'s the (uncompressed) coredump
3. CrashDaemon launches CrashReporter
4. CrashDaemon goes to sleep for 3 seconds (hack alert!)
5. CrashReporter parses the (uncompressed) coredump
6. CrashReporter unlinks the (uncompressed) coredump
7. CrashReporter displays a GUI
8. CrashDaemon wakes up (after step 4)
9. CrashDaemon compresses the coredump (gzip)

TL;DR: we no longer parse the coredumps twice, and we also prioritize
launching the CrashReporter GUI immediately when a new coredump shows
up, instead of compressing and parsing it in CrashDaemon first.

The net effect of this is that you get a backtrace on screen much
sooner. That's pretty nice. :^)
2021-09-21 20:52:29 +02:00
..
AudioServer AudioServer: Fix deadlock when playing two audio streams 2021-09-12 23:38:57 +02:00
ChessEngine ChessEngine: Use ElapsedTimer::start_new() 2021-09-12 17:24:44 +00:00
Clipboard Services: Remove unused header includes 2021-08-01 08:10:16 +02:00
ConfigServer ConfigServer: Update the configuration cache on file changes 2021-08-27 13:31:45 +02:00
CrashDaemon CrashDaemon+CrashReporter: Streamline crash reporting a little bit 2021-09-21 20:52:29 +02:00
DHCPClient Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
EchoServer Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
FileOperation FileOperation: Deduplicate destination file names on copy 2021-09-13 18:08:34 +04:30
FileSystemAccessServer FileSystemAccessServer: Only compute basename when prompting 2021-09-16 17:17:13 +02:00
ImageDecoder LibGfx: Remove Gfx::ImageDecoder::bitmap() in favor of frame(index) 2021-07-27 01:29:50 +02:00
InspectorServer Everywhere: Use OOM-safe ByteBuffer APIs where possible 2021-09-06 01:53:26 +02:00
KeyboardPreferenceLoader Everywhere: Rename get in ConfigFile::get_for_{lib,app,system} to open 2021-08-22 01:32:25 +02:00
LaunchServer Everywhere: Rename get in ConfigFile::get_for_{lib,app,system} to open 2021-08-22 01:32:25 +02:00
LookupServer LookupServer: Use HashMap::ensure() in load_etc_hosts() 2021-09-04 20:30:56 +02:00
NotificationServer Userland+LibGUI: Add shorthand versions of the Margins constructor 2021-08-18 10:30:50 +02:00
RequestServer LibCore+RequestServer: Ignore callbacks for cancelled network jobs 2021-09-19 21:10:23 +04:30
SpiceAgent Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
SQLServer Userland: Migrate to argument-less deferred_invoke 2021-09-02 03:47:47 +04:30
SystemServer Kernel+SystemServer: Simplify the DevTmpFS design 2021-09-08 00:42:20 +02:00
Taskbar Userland: Use Rect::centered_within() where useful 2021-08-31 01:35:08 +02:00
TelnetServer Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
WebContent LibWeb+Browser: Add Debug menu action for toggling Same-Origin Policy 2021-09-12 02:13:28 +02:00
WebServer Userland: Migrate to argument-less deferred_invoke 2021-09-02 03:47:47 +04:30
WebSocket Userland: Migrate to argument-less deferred_invoke 2021-09-02 03:47:47 +04:30
WindowServer WindowServer: Apply screen scaling when getting bitmap around cursor 2021-09-20 22:25:24 +02:00
CMakeLists.txt Userland: Introduce ConfigServer and LibConfig 2021-08-26 00:54:27 +02:00