LINUX.ORG.RU

Вопрос про atomic_inc*


0

0

Привет всем! Хочу понять одну вещь - если использовать функции типа atomic_inc* из юзер спэйса в Линуксе (C++, это будет использоваться в демоне), то они будут работать или лучше все-таки что-то другое использовать? Просто мне на одном форуме человек сказал, что это кернальные функции и в юзер спэйсе все это работать не будет, и мнения разделились на эту тему.


Раз C++, то переделай проект на qt. Там свалка всего подряд.

mv ★★★★★
()

Тебе там сказали, что тот хидер, который ты нашла - кернельный. Если пытаться его использовать - скорее всего у тебя ничего не слинкуется.

В userspace атомики прекрасно работаю, главное - использовать правильные хидеры. Я бы рекомендовал использовать TBB(Intel Threading Building Blocks) и его атомики, либа кроссплатформенная и код будет один что для линукса что для виндов. Если уже используется Qt - можно и оттуда добыть себе атомиков.

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

Положа руку на сердце, для одной архитектуры процессора атомики пишутся с отладкой за пару часов ;)

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

В tbb они afaik вообще include-only, и там просто ассемблерные вставки с одной инструкцией. =))

Зато кросплатформенно(нужный инклуд подставляют) и template-но =)

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

Не то, что ложки - деда мороза и того не существует. =)

YesSSS ★★★
()

Посмотри на boost/detail/atomic_count.hpp - там реализация атомиков для всех платформ, но это внутренний хидер - так что надо просто скопировать реализацию (внутренние класы могут быть изменены в любой момент).

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