ObjFW  Check-in [87b1318a27]

Overview
Comment:OFProcess: Use vfork() instead of fork()
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 87b1318a2765a47df68959e8a721427d868f8d458a51448f1827b15cc60542a0
User & Date: js on 2015-08-09 14:59:56
Other Links: manifest | tags
Context
2015-08-09
15:00
configure.ac: Fix small typo check-in: ba9718061e user: js tags: trunk
14:59
OFProcess: Use vfork() instead of fork() check-in: 87b1318a27 user: js tags: trunk
14:59
PLATFORMS.md: Add OS X El Capitan check-in: 16db923d91 user: js tags: trunk
Changes

Modified configure.ac from [9383b47e78] to [0bf6613428].

932
933
934
935
936
937
938
939
940


941
942
943
944
945
946
947
932
933
934
935
936
937
938


939
940
941
942
943
944
945
946
947







-
-
+
+







	*-*-mingw*)
		have_processes="yes"
		;;
	*-*-msdosdjgpp*)
		have_processes="no"
		;;
	*)
		AC_CHECK_FUNCS([fork dup2 execvp kill _exit], [
			AS_IF([test x"$ac_cv_func_fork" = x"yes" \
		AC_CHECK_FUNCS([vfork dup2 execvp kill _exit], [
			AS_IF([test x"$ac_cv_func_vfork" = x"yes" \
			    -a x"$ac_cv_func_pipe" = x"yes" \
			    -a x"$ac_cv_func_dup2" = x"yes" \
			    -a x"$ac_cv_func_execvp" = x"yes" \
			    -a x"$ac_cv_func_kill" = x"yes" \
			    -a x"$ac_cv_func__exit" = x"yes"], [
				have_processes="yes"
			])

Modified src/OFProcess.m from [5b951c5966] to [30416b7510].

195
196
197
198
199
200
201
202

203
204
205
206
207
208
209
195
196
197
198
199
200
201

202
203
204
205
206
207
208
209







-
+







					@throw [OFInitializationFailedException
					    exceptionWithClass: [self class]];
			} @finally {
				posix_spawn_file_actions_destroy(&actions);
				posix_spawnattr_destroy(&attr);
			}
# else
			if ((_pid = fork()) == 0) {
			if ((_pid = vfork()) == 0) {
				environ = env;

				close(_readPipe[0]);
				close(_writePipe[1]);
				dup2(_writePipe[0], 0);
				dup2(_readPipe[1], 1);
				execvp(path, argv);