bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#2602: Emacs shell exits when executed command sets stdout and stderr


From: William K. Foster
Subject: bug#2602: Emacs shell exits when executed command sets stdout and stderr to be non-blocking
Date: Sun, 8 Mar 2009 13:56:48 -0700

Hello,

Create an application that does the following:

  void setFdBlocking(int fd, bool block) {
    // Set an fd's blocking flag on or off.
    int flags;

    if (0 > (flags = fcntl(fd, F_GETFL, 0))) {
      throw;
    }

    if (block) {
      flags &= ~O_NONBLOCK;
    } else {
      flags |=  O_NONBLOCK;
    }

    if (0 > fcntl(fd, F_SETFL, flags)) {
      throw;
    }
  }

  // Make Stdout and Stderr be non-blocking.
  setFdBlocking(1, false);
  setFdBlocking(2, false);

If you execute the application from a shell inside emacs, the shell will exit when the command returns.

This does not happen for a shell outside of emacs.

Thanks.

-William

reply via email to

[Prev in Thread] Current Thread [Next in Thread]