поток ICU ucnv_convertEx безопасен? - PullRequest
1 голос
/ 01 февраля 2011

Мне интересно, является ли ucnv_convertEx в библиотеке ICU поточно-ориентированным. Глядя на источник, кажется, что он потокобезопасен, но я не уверен на 100%. Также я не могу найти явное состояние этого в документации ICU.

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Руководство пользователя ICU обсуждает это для всех объектов, которые имеют модель открытия / закрытия. Каждый объект конвертера должен использоваться одновременно в одном потоке. Если вам нужно их больше, клонируйте их. Их дешево клонировать.

Кстати, где бы вы ожидали эту информацию? Может быть, вы могли бы подать заявку, и мы можем улучшить документацию. Спасибо.

1 голос
/ 02 февраля 2011

В основном ICU является потокобезопасным, но:

  1. Вы не можете предполагать, что безопасно вызывать функции / функции-члены const, работающие на нем одного и того же объекта, из разных потоков (на самом деле это вообще небезопасно, что делает ICU сложным во всех аспектах, связанных с потоками)
  2. Конечно, вы не можете использовать один и тот же объект с бесплатными функциями-членами, работающими над объектом из разных потоков.

Обычно в случае ucnv_convertEx, если вы не делите UConverter между потоками, это безопасно.

...