LINUX.ORG.RU

Кроссплатформенная реализация r/w locks


0

1

Как реализовать блокировки на чтение/запись, если система не содержит функций pthread_rwlock_* ?

$ grep -re pthread_rwlock /usr/include | wc -l
0
Надо, чтобы код (обмен данными между нитями) работал под FreeBSD, и - под различными Linux'ами.

Использовать mutex'ы?

★★★★★

А вообще, стоит посмотреть, как реализованы rwlock'и в glibc.

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

> boost::unique_lock, boost::shared_lock

Ограничение ТЗ: программа должна быть написана на Си, без использования Си++.

pacify ★★★★★
() автор топика

Вообщем, система, где rwlock сходу не нашелся - это CentOS 4.4 final.
Там какой-то пакет особенный для pthread_rwlock_* надо ставить?

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

Вроде должно хватать glibc-headers. Если этот пакет не установлен, то что вы вобще собрались компилировать? А если есть, то должен быть файл /usr/include/bits/libc-lock.h

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

CentOS 4.4

Вы с таким барахлом работаете? Сочувствую.

true_admin ★★★★★
()

Использовать mutex'ы?

Именно, особенно, если речь о программе из соседнего топика. Ну или спинлоки.

ratatosk
()
Ответ на: комментарий от pacify

Я в тот топег запостил бенчмарки для non-contended case, разница оказалась не такой большой, как я думал, но м.б. поможет выбрать.

ratatosk
()
Ответ на: комментарий от pacify

Странно, попробуйте «rpm -V glibc-headers», должны быть сообщения про отсутствующие файлы / неправильные md5.

mky ★★★★★
()

>Использовать mutex'ы?

да. можно самому реализовать rwlock.

iomould
()
Ответ на: комментарий от yoghurt

>boost::unique_lock, boost::shared_lock

oh shi... люди с ++ГМ на моем ЛОРе.

iomould
()
Ответ на: комментарий от mky

> Странно, попробуйте «rpm -V glibc-headers»

Вообщем, mutex'ы на CentOS 4.4 заработали.
r/w locks пока повторно не пробовал.

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