mirror of git://gcc.gnu.org/git/gcc.git
adaint.c (_gnat_set_close_on_exec): Implement.
2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement. From-SVN: r139167
This commit is contained in:
parent
2f1dcfba75
commit
c8bbc9ef2a
|
|
@ -1,3 +1,7 @@
|
|||
2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
|
||||
|
||||
* adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
|
||||
|
||||
2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
|
||||
|
|
|
|||
|
|
@ -3248,12 +3248,17 @@ __gnat_set_close_on_exec (int fd ATTRIBUTE_UNUSED,
|
|||
else
|
||||
flags &= ~FD_CLOEXEC;
|
||||
return fcntl (fd, F_SETFD, flags | FD_CLOEXEC);
|
||||
#elif defined(_WIN32)
|
||||
HANDLE h = (HANDLE) _get_osfhandle (fd);
|
||||
if (h == (HANDLE) -1)
|
||||
return -1;
|
||||
if (close_on_exec_p)
|
||||
return ! SetHandleInformation (h, HANDLE_FLAG_INHERIT, 0);
|
||||
return ! SetHandleInformation (h, HANDLE_FLAG_INHERIT,
|
||||
HANDLE_FLAG_INHERIT);
|
||||
#else
|
||||
/* TODO: Unimplemented. */
|
||||
return -1;
|
||||
/* For the Windows case, we should use SetHandleInformation to remove
|
||||
the HANDLE_INHERIT property from fd. This is not implemented yet,
|
||||
but for our purposes (support of GNAT.Expect) this does not matter,
|
||||
as by default handles are *not* inherited. */
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue