1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:47:47 +00:00

Port the WindowServer and LibGUI to communicate through local sockets.

This is really cool! :^)

Apps currently refuse to start if the WindowServer isn't listening on the
socket in /wsportal. This makes sense, but I guess it would also be nice
to have some sort of "wait for server on startup" mode.

This has performance issues, and I'll work on those, but this stuff seems
to actually work and I'm very happy with that.
This commit is contained in:
Andreas Kling 2019-02-14 17:18:35 +01:00
parent 00319c248c
commit bf58241c11
15 changed files with 190 additions and 51 deletions

View file

@ -78,6 +78,7 @@ public:
BlockedWrite,
BlockedSignal,
BlockedSelect,
BlockedConnect,
};
enum Priority {
@ -226,6 +227,8 @@ public:
DisplayInfo set_video_resolution(int width, int height);
bool wait_for_connect(Socket&, int& error);
static void initialize();
void crash() NORETURN;
@ -356,6 +359,7 @@ private:
SignalActionData m_signal_action_data[32];
dword m_pending_signals { 0 };
dword m_signal_mask { 0xffffffff };
RetainPtr<Socket> m_blocked_connecting_socket;
byte m_termination_status { 0 };
byte m_termination_signal { 0 };
@ -456,6 +460,7 @@ static inline const char* to_string(Process::State state)
case Process::BlockedSignal: return "Signal";
case Process::BlockedSelect: return "Select";
case Process::BlockedLurking: return "Lurking";
case Process::BlockedConnect: return "Connect";
case Process::BeingInspected: return "Inspect";
}
ASSERT_NOT_REACHED();