mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
O_CLOEXEC usage
* libguile/objcodes.c (scm_load_objcode): * libguile/scmsigs.c (start_signal_delivery_thread): * libguile/threads.c (guilify_self_1): Use O_CLOEXEC.
This commit is contained in:
parent
3d458a81c6
commit
32f94bf258
3 changed files with 4 additions and 17 deletions
|
@ -295,7 +295,7 @@ SCM_DEFINE (scm_load_objcode, "load-objcode", 1, 0, 0,
|
|||
SCM_VALIDATE_STRING (1, file);
|
||||
|
||||
c_file = scm_to_locale_string (file);
|
||||
fd = open (c_file, O_RDONLY);
|
||||
fd = open (c_file, O_RDONLY | O_CLOEXEC);
|
||||
free (c_file);
|
||||
if (fd < 0) SCM_SYSERROR;
|
||||
|
||||
|
|
|
@ -39,10 +39,6 @@
|
|||
#include "libguile/validate.h"
|
||||
#include "libguile/scmsigs.h"
|
||||
|
||||
#ifdef HAVE_IO_H
|
||||
#include <io.h> /* for mingw _pipe() */
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PROCESS_H
|
||||
#include <process.h> /* for mingw */
|
||||
#endif
|
||||
|
@ -61,7 +57,6 @@
|
|||
/* This weird comma expression is because Sleep is void under Windows. */
|
||||
#define sleep(sec) (Sleep ((sec) * 1000), 0)
|
||||
#define usleep(usec) (Sleep ((usec) / 1000), 0)
|
||||
#define pipe(fd) _pipe (fd, 256, O_BINARY)
|
||||
#endif
|
||||
|
||||
#include <full-write.h>
|
||||
|
@ -208,7 +203,7 @@ start_signal_delivery_thread (void)
|
|||
|
||||
scm_i_pthread_mutex_lock (&signal_delivery_thread_mutex);
|
||||
|
||||
if (pipe (signal_pipe) != 0)
|
||||
if (pipe2 (signal_pipe, O_CLOEXEC) != 0)
|
||||
scm_syserror (NULL);
|
||||
signal_thread = scm_spawn_thread (signal_delivery_thread, NULL,
|
||||
scm_handle_by_message,
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <fcntl.h>
|
||||
#include <nproc.h>
|
||||
|
||||
#include "libguile/validate.h"
|
||||
|
@ -57,15 +58,6 @@
|
|||
#include "libguile/strings.h"
|
||||
#include "libguile/weaks.h"
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#ifndef ETIMEDOUT
|
||||
# define ETIMEDOUT WSAETIMEDOUT
|
||||
#endif
|
||||
# include <fcntl.h>
|
||||
# include <process.h>
|
||||
# define pipe(fd) _pipe (fd, 256, O_BINARY)
|
||||
#endif /* __MINGW32__ */
|
||||
|
||||
#include <full-read.h>
|
||||
|
||||
|
||||
|
@ -538,7 +530,7 @@ guilify_self_1 (struct GC_stack_base *base)
|
|||
t.sleep_object = SCM_BOOL_F;
|
||||
t.sleep_fd = -1;
|
||||
|
||||
if (pipe (t.sleep_pipe) != 0)
|
||||
if (pipe2 (t.sleep_pipe, O_CLOEXEC) != 0)
|
||||
/* FIXME: Error conditions during the initialization phase are handled
|
||||
gracelessly since public functions such as `scm_init_guile ()'
|
||||
currently have type `void'. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue