Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 30.09.2011, 16:31
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Код на чистом C, компилирующийся на Windows, SunOS и AIX. Задача: с минимальным количеством изменений сделать код thread safe чтобы он компилировался на трёх платформах. Контроля над запуском тредов у меня нет. Моя входная функция вызывается извне. Первый вызов к ней одиночный, т.е. пока он не закончится, вызовы к другим тредам поступать не могут. Существует ситуация, при которой два вызова к входной функции связаны друг с другом и происходят в пределах одного треда. Мне нужно сохранять информацию между двумя этими вызовами.На виндах я использовал виндовские треды. Для Юниксов - pthread. В первом одиночном вызове я инициализирую мютексы. Для передачи информации в пределах треда в Юниксах использую глобальную переменную, объявленную с директивой __thread. На Сане всё работает чудесно, а AIX, зараза, ругается, говоря, что __thread не поддерживается платформой - мы используем древнего монстра для совместимости с максимальным количеством платформ. Накидайте мне плиз идей как наиболее элегантно обойти эту проблему.
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Thread Safe / Non Thread Safe Guest Продолжение старого архива 0 17.10.2011 04:34
QAxObject и Thread Guest Продолжение старого архива 0 30.09.2011 13:27
Thread и ProgressBar в QT Guest Новый архив 3 0 28.09.2011 17:33
Running local boot scripts (/etc/rc.local) - OK Guest Новый архив 2 0 28.09.2011 07:07
Running local boot scripts (/etc/rc.local) [OK] Guest Новые вопросы и ответы 4 0 28.09.2011 03:33



© www.otvetnemail.ru - Форум вопросов и ответов.