The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"WWW::Curl::Easy и многопоточность."
Отправлено mthawk, 25-Апр-09 23:34 
Здравствуйте!
Пишу на perl многопоточный демон, который управляет через COM несколькими устройствами и докладывает об этом по сети на удаленный сервер.
Использую по триду на устройство и трид, который держит связь через WWW::Curl::Easy.
Основная программа держит связь с тридами через Unix Socket, координирует их работу, формирует и передает данные для отправки в "сетевой" трид.
Проблема:
До тех пор, пока связь есть - все хорошо. Но когда возникают проблемы с сетью при неуспешной отправке сетевого запроса все падает с сообщением на консоль:
Usage: WWW::Curl::Easy::strerror(self, errornum) at /tmp/daemon line 18.
Могу только догадаться, что это реакция на строку:
print nowdate()." NET: Receiving data... Socket error occupied ".$XMLSOCK->strerror($retcode)." ($retcode).\n"
потому что line 18 - это usleep внутри while(1){...} основной программы, не трида.
Переменная, которая должна содержать код ошибки при отправке данных через WWW::Curl::Easy содержит вместо этого указатель на скаряр WWW::Curl::Easy=SCALAR(0xa958814)
Если WWW::Curl::Easy используется в основной программе, а не триде этой проблемы нет. Но это недопустимо для меня.

Кто может прояснить в чем проблема и с каким нюансом работы модулей и тридов я столкнулся.
Заранее благодарю!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру