Xquartz: Xquartz stub now can send Mach IPC to start the server.
(cherry picked from commit 55a3bca8ea42f8677897f94bf0a429bdc08c6696)
This commit is contained in:
parent
93c082a060
commit
adc62f62b9
|
@ -1,6 +1,7 @@
|
|||
AM_CPPFLAGS = \
|
||||
-DBUILD_DATE=\"$(BUILD_DATE)\" \
|
||||
-DXSERVER_VERSION=\"$(VERSION)\"
|
||||
# -DNEW_LAUNCH_METHOD -DNEW_LAUNCH_METHOD_2
|
||||
|
||||
x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
|
||||
x11app_PROGRAMS = X11
|
||||
|
|
|
@ -165,10 +165,11 @@ int main(int argc, char **argv, char **envp) {
|
|||
mach_port_t mp;
|
||||
kern_return_t kr;
|
||||
|
||||
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||
for(i=1; i < argc; i++) {
|
||||
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
||||
if(!strcmp(argv[i], "--listenonly")) {
|
||||
listenOnly = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -221,10 +222,12 @@ int main(int argc, char **argv, char **envp) {
|
|||
const char *s;
|
||||
|
||||
size_t i;
|
||||
#ifndef NEW_LAUNCH_METHOD
|
||||
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||
for(i=0; i < argc; i++) {
|
||||
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Take care of the case where we're called like a normal DDX */
|
||||
if(argc > 1 && argv[1][0] == ':') {
|
||||
|
|
|
@ -115,6 +115,7 @@ int main(int argc, char **argv, char **envp) {
|
|||
mach_port_t mp;
|
||||
string_array_t newenvp;
|
||||
string_array_t newargv;
|
||||
size_t i;
|
||||
#endif
|
||||
|
||||
if(argc == 2 && !strcmp(argv[1], "-version")) {
|
||||
|
@ -127,7 +128,6 @@ int main(int argc, char **argv, char **envp) {
|
|||
#ifdef NEW_LAUNCH_METHOD_2
|
||||
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
||||
if(kr != KERN_SUCCESS) {
|
||||
int i;
|
||||
set_x11_path();
|
||||
|
||||
/* This forking is ugly and will be cleaned up later */
|
||||
|
@ -142,19 +142,20 @@ int main(int argc, char **argv, char **envp) {
|
|||
_argv[0] = x11_path;
|
||||
_argv[1] = "--listenonly";
|
||||
_argv[2] = NULL;
|
||||
fprintf(stderr, "Starting X server: %s --listenonly\n", x11_path);
|
||||
return execvp(x11_path, _argv);
|
||||
}
|
||||
|
||||
/* Try connecting for 10 seconds */
|
||||
for(i=0; i < 20; i++) {
|
||||
usleep(500);
|
||||
for(i=0; i < 40; i++) {
|
||||
usleep(250000);
|
||||
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
||||
if(kr == KERN_SUCCESS)
|
||||
break;
|
||||
}
|
||||
|
||||
if(kr != KERN_SUCCESS) {
|
||||
fprintf(stderr, "bootstrap_look_up(): %s\n", bootstrap_strerror(kr));
|
||||
fprintf(stderr, "bootstrap_look_up(): Timed out: %s\n", bootstrap_strerror(kr));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue