以前のバージョン:
(nkfr, nkfw) = popen2.popen('nkf -j')
nkfw.write(log2)
nkfw.close()
jislog = nkfr.read()
nkfr.close()
これだと、
・nkf側が、JISに変換した結果をwriteしようとする
・post-commit側もwrite中
の時に、デッドロックする。
selectを使うという手もあったが、もっと単純に、テンポラリファイルを作って対処する事にした。
(fd, tname) = tempfile.mkstemp()
os.write(fd, log2)
os.close(fd)
(nkfr, nkfw) = popen.popen2('nkf -j %s' % (tname,))
nkfw.close()
jislog = nkfr.read()
nkfr.close()
os.unlink(tname)
0 件のコメント:
コメントを投稿