mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-07 09:00:16 +01:00
XQuartz: Fixed the "laggy" startup under the new model. This was caused by xinit blocking expecting SIGUSR1 and our stub never sending it.
(cherry picked from commit ee92aced10)
This commit is contained in:
parent
01ace5f3fd
commit
5170c169db
2 changed files with 14 additions and 0 deletions
|
|
@ -350,6 +350,10 @@ Bool DarwinEQInit(void) {
|
|||
|
||||
QuartzModeEQInit();
|
||||
|
||||
/* Note that this *could* cause a potential async issue, since we're checking
|
||||
* darwinEvents without holding the lock, but darwinEvents is only ever set
|
||||
* here, so I don't bother.
|
||||
*/
|
||||
if (!darwinEvents) {
|
||||
darwinEvents = (xEvent *)xcalloc(sizeof(xEvent), GetMaximumEventsNum());
|
||||
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@ int main(int argc, char **argv, char **envp) {
|
|||
int launchd_fd;
|
||||
string_t handoff_socket_filename;
|
||||
#endif
|
||||
sig_t handler;
|
||||
|
||||
if(argc == 2 && !strcmp(argv[1], "-version")) {
|
||||
fprintf(stderr, "X.org Release 7.3\n");
|
||||
|
|
@ -222,6 +223,15 @@ int main(int argc, char **argv, char **envp) {
|
|||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
/* We don't have a mechanism in place to handle this interrupt driven
|
||||
* server-start notification, so just send the signal now, so xinit doesn't
|
||||
* time out waiting for it and will just poll for the server.
|
||||
*/
|
||||
handler = signal(SIGUSR1, SIG_IGN);
|
||||
if(handler == SIG_IGN)
|
||||
kill(getppid(), SIGUSR1);
|
||||
signal(SIGUSR1, handler);
|
||||
|
||||
#ifdef NEW_LAUNCH_METHOD
|
||||
/* Get the $DISPLAY FD */
|
||||
launchd_fd = launchd_display_fd();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue