ICUライブラリのucnv_convertExがスレッドセーフであるかどうか疑問に思っています。ソースを見るとスレッドセーフですが、100%確実ではありません。また、私はICUのドキュメントでこれの明示的な状態を見つけることができません。はICUのucnv_convertExスレッドセーフですか?
おかげ
ICUライブラリのucnv_convertExがスレッドセーフであるかどうか疑問に思っています。ソースを見るとスレッドセーフですが、100%確実ではありません。また、私はICUのドキュメントでこれの明示的な状態を見つけることができません。はICUのucnv_convertExスレッドセーフですか?
おかげ
ICU User Guideはオープン/クローズのモデルを持っているすべてのオブジェクトに対して、これについて説明します。各Converterオブジェクトは、一度に1つのスレッドで使用する必要があります。もっと必要なものがあれば、それらを複製してください。彼らはクローンを作るのに安価です。
ところで、あなたはこの情報をどこから期待していますか?たぶんあなたはチケットを発行することができ、ドキュメントを改善することができます。ありがとう。
基本的にICUはスレッドセーフですが、:
基本的にucnv_convertEx
の場合、スレッド間でUConverterを共有しない限り、安全です。
スレッド間でUConverterを共有しない限り、スレッドセーフであると定義されています。 Uコンバーターは軽量ですが、コンバージョンの状態が含まれています。それらは共有されたスレッドセーフなデータによってバックアップされます。私たちは厄介ではないように... –
私はあなたがICUの貢献者であることを知りました... "const-methods"をスレッドセーフにしてもらえますか?スレッドセーフな環境でこのようなオブジェクトを使用するのは大変な努力をしています。とても痛い。 Boost.LocaleでTLSと広範なキャッシングを使用して終了し、ICUで速く動作するようになりました。また、UTF-8サポートは大幅に改善されなければなりません。 ':-) ' – Artyom