mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 21:56:57 +00:00
Sync OpenBSD patchset 834:
Move all calls to fcntl(...O_NONBLOCK) into a function and clear the flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").
This commit is contained in:
9
job.c
9
job.c
@ -1,4 +1,4 @@
|
||||
/* $Id: job.c,v 1.19 2010-10-24 00:45:57 tcunha Exp $ */
|
||||
/* $Id: job.c,v 1.20 2011-01-21 23:44:13 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -136,7 +136,7 @@ job_free(struct job *job)
|
||||
int
|
||||
job_run(struct job *job)
|
||||
{
|
||||
int nullfd, out[2], mode;
|
||||
int nullfd, out[2];
|
||||
|
||||
if (job->fd != -1 || job->pid != -1)
|
||||
return (0);
|
||||
@ -176,10 +176,7 @@ job_run(struct job *job)
|
||||
close(out[1]);
|
||||
|
||||
job->fd = out[0];
|
||||
if ((mode = fcntl(job->fd, F_GETFL)) == -1)
|
||||
fatal("fcntl failed");
|
||||
if (fcntl(job->fd, F_SETFL, mode|O_NONBLOCK) == -1)
|
||||
fatal("fcntl failed");
|
||||
setblocking(job->fd, 0);
|
||||
|
||||
if (job->event != NULL)
|
||||
bufferevent_free(job->event);
|
||||
|
Reference in New Issue
Block a user