これは Ubuntu システムでは問題なく動作するコード スニペットですが、OS X で setraw を呼び出すと Python プロセスがハングします。
import os, sys, termios, tty
# Open pseudo terminal
m,s = os.openpty()
stdin = os.fdopen(s, 'r', 0)
stdout = os.fdopen(s, 'w', 0)
# Remember olt attrs for restoration later on
tcattr = termios.tcgetattr(stdin.fileno())
# Set pseudo terminal in raw mode
tty.setraw(stdin.fileno())
# Write something on the slave side of the pseudo terminal
stdout.write('test\n')
# Call setraw again. (for no reason) But it hangs here...
tty.setraw(stdin.fileno())
このコードに何か問題がありますか、それとも OS X の動作が異なりますか? 以前は機能していましたが、コードのわずかな変更により、OS X でブロックされるようになりました...