summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2011-06-04 15:29:11 +0000
committerKaren Tracey <kmtracey@gmail.com>2011-06-04 15:29:11 +0000
commitacbb911ad5ab6160bbbf5ee510d3097124d5cca2 (patch)
tree958b2ce7886e64a2ff941e13b945b33e8f4f0571
parent773e1717c0fbad45b3baab6a3026670e322301ad (diff)
Fix #15880: Prevent "stalling" when running dev server in background by ignoring SIGTTOU for the duration of tcsetattr.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16326 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/autoreload.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py
index ffa75e2c4f..ec7b103069 100644
--- a/django/utils/autoreload.py
+++ b/django/utils/autoreload.py
@@ -28,7 +28,7 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os, sys, time
+import os, sys, time, signal
try:
import thread
@@ -78,7 +78,13 @@ def ensure_echo_on():
attr_list = termios.tcgetattr(fd)
if not attr_list[3] & termios.ECHO:
attr_list[3] |= termios.ECHO
+ if hasattr(signal, 'SIGTTOU'):
+ old_handler = signal.signal(signal.SIGTTOU, signal.SIG_IGN)
+ else:
+ old_handler = None
termios.tcsetattr(fd, termios.TCSANOW, attr_list)
+ if old_handler is not None:
+ signal.signal(signal.SIGTTOU, old_handler)
def reloader_thread():
ensure_echo_on()