ObjFW  Check-in [f45a6bb10b]

Overview
Comment:OFProcess: Use _exit() on failure
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f45a6bb10b82f0803c904f754939f13adbe20de4db586997847558eba2ff7520
User & Date: js on 2014-10-24 19:12:24
Other Links: manifest | tags
Context
2014-11-09
18:54
OFProcess: Do all memory allocation before fork() check-in: 30e5c5ea27 user: js tags: trunk
2014-10-24
19:12
OFProcess: Use _exit() on failure check-in: f45a6bb10b user: js tags: trunk
19:12
OFApplication: Use EXIT_SUCCESS as default status check-in: 46cf9f33a8 user: js tags: trunk
Changes

Modified configure.ac from [eec1183ff7] to [6164418947].

884
885
886
887
888
889
890
891

892
893
894
895
896


897
898
899
900
901
902
903
884
885
886
887
888
889
890

891
892
893
894
895

896
897
898
899
900
901
902
903
904







-
+




-
+
+







	*-*-mingw*)
		have_processes="yes"
		;;
	*-*-msdosdjgpp*)
		have_processes="no"
		;;
	*)
		AC_CHECK_FUNCS([fork dup2 execvp kill], [
		AC_CHECK_FUNCS([fork dup2 execvp kill _exit], [
			if test x"$ac_cv_func_fork" = 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"; then
			    -a x"$ac_cv_func_kill" = x"yes" \
			    -a x"$ac_cv_func__exit" = x"yes"; then
				have_processes="yes"
			fi
		], [
			break
		])
		;;
esac

Modified src/OFProcess.m from [940798f49a] to [02e2a0da24].

172
173
174
175
176
177
178
179

180
181
182
183
184
185
186
187
172
173
174
175
176
177
178

179

180
181
182
183
184
185
186







-
+
-








			close(_readPipe[0]);
			close(_writePipe[1]);
			dup2(_writePipe[0], 0);
			dup2(_readPipe[1], 1);
			execvp([program cStringWithEncoding: encoding], argv);

			@throw [OFInitializationFailedException
			_exit(EXIT_FAILURE);
			    exceptionWithClass: [self class]];
		case -1:
			@throw [OFInitializationFailedException
			    exceptionWithClass: [self class]];
		default:
			close(_readPipe[1]);
			close(_writePipe[0]);
			break;