LINUX.ORG.RU

Portable C thread library


0

2

Собственно вопрос. Пишу портабельную (ISO C90) библиотеку для Linux, BSD, windows, Mac, Solaris, которая работает с определённым видом веб-движков. Камнем преткновения являются два вопроса - библиотека для соединения с интернетом и потокобезопасность. Первый вопрос я уже решил, используя libcurl (она поддерживает эти платформы и ещё вагон других). Что делать с потоками?

В ISOC90 нет ничего о потоках, только sig_atomic_t, но это другое. Думал использовать Glib, но там вроде проблемы с портированием. Гугл нашёл советы использовать pthreads и APR. Есть ещё идеи?


Ответ на: комментарий от Lorchanko

Оно не то, чтобы не устраивает, просто решение стратегическое и его в будущем не хочется менять плюс услышать другие альтернативы (может я что-то пропустил).

Кстати насчёт pthread я слышал в нём один компонент в windows плохо реализован.

sched
() автор топика
Ответ на: комментарий от Lorchanko

Да, обязательное. Так с pthreads действительно есть затруднения на windows? Я с ними не работал.

Кстати добавлю, что в проекте нужны не сами потоки, а механизмы, обеспечивающие потокобезопасность данных.

sched
() автор топика
Ответ на: комментарий от sched

>На сайте проекта написано, что для Unix. Windows и mac поддерживает?

mac поддерживает. Для венды нужен cygwin.

AptGet ★★★
()
Ответ на: комментарий от tailgunner

Полазил у них по сайту, вроде бы две версии только для unix и для win32. api, как ни странно, тот же самый. Даже про spurious wake ups в cond_wait написано. В чём профит apr перед pthreads? Можете по пунктам? Спасибо.

mi_estas
()

>Что делать с потоками?

Ершиком их. Или вы нити имели в виду?

anonymous
()

> Есть ещё идеи?

В рамках только С90 работать с потоками не получится. Всячески советую использовать POSIX 1c.

LamerOk ★★★★★
()
Ответ на: комментарий от mi_estas

> В чём профит apr перед pthreads? Можете по пунктам? Спасибо.

Давно прошли времена, когда меня это интересовало, но вот что вспоминается: 1) реализации pthreads для венды неполны и иногда содержат тонкие баги, потому что 2) некоторые примитивы pthreads (условные переменные, в частности) трудно корректно реализовать на win32, в связи с чем Apache и разработал свою APR. Помимо Apache, ее использует еще и SVN как минимум - обе программы известны своей переносимостью.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.