thread safe gethostbyname

 
0
 
C++
ava
Therion | 14.07.2009, 14:28
Система MacOS X Leopard. Пытаюсь вызвать gethostbyname (пробовал и други getaddrinfogetipnodebyname - результат тот же) в дочерном потоке.
Программа валится:

Thread 15 Crashed:
0   libSystem.B.dylib             0x91322366 libinfoDSmig_Query + 12
1   libSystem.B.dylib             0x91322153 LI_DSLookupQuery + 353
2   libSystem.B.dylib             0x91342c4a ds_gethostbyname + 218
3   libSystem.B.dylib             0x91342899 gethostbynameerrno + 156
4   libSystem.B.dylib             0x913427b8 gethostbyname + 42
5   test                                 0x19ce623d  SmtpConnect + 263


В документации написано что вышеуказанные функции thread-safe, но они таковыми не являются. Временное решение формирование sockaddr_in в основном потоке и передача ее в поток, но оно создает ряд неудобств. Если есть у кого опыт решения подобной проблемы поделитесь пожайлуста. Заранее благодарен.

P.S. Этот код прекрасно работает в Windows и Mac OS Tiger. Не понятно чего они в Leopard намудрили.
Ответы (1)
ava
GrayCardinal | 15.07.2009, 18:08 #
Therion,
Можно код в студию? smile 
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить