-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: Windowsでエンジンの多重起動を可能にする #1514
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
思った以上にWindows用のコードが大きくなってしまいました…
_FILE_SHARE_READ = 0x00000001 | ||
_OPEN_EXISTING = 3 | ||
_FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 | ||
_INVALID_HANDLE_VALUE = HANDLE(-1).value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
INVALID_HANDLE_VALUE
の値がMicrosoftのドキュメントのどこにも書いてありませんでした。
Win32のhandleapi.h
の内容を直接確認したところ#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
となっていたのでこのようにしておきました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ほぼLGTMです!!!
ちょっとこちらで一部書き換えさせていただきます!!
1bd3d55 でちょっと変更させていただきました! あとは↓が解決すればマージできそう! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!
ありがとうございました!
実際にlatestビルドされたエンジンを使ってみたいと思います!!
内容
コンパイル済み辞書を起動しているエンジンのプロセスごとに割り当てることでエンジンの多重起動ができるようにします。
コンパイル済み辞書のファイル名を常にランダムにすることで実現します。
POSIXではopenjtalkが辞書を開いた後にunlinkすることで辞書が残ってしまうことを防ぎます。
WIndowsでは
CreateFileW
でFILE_FLAG_DELETE_ON_CLOSE
を付けて開いた後すぐに閉じることでファイルが閉じた時に自動的に削除されます。関連 Issue
FILE_FLAG_DELETE_ON_CLOSE
を付けて開かれている辞書を扱えるようにする pyopenjtalk#21その他
これまでの議論 #1347 (comment)