LINUX.ORG.RU

[нуб-вопрос]мьютексы, многопоточность, Linux


0

1

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

DEFINE_MUTEX(npdu_buffer_access);
приводит к ошибке:
Multiple markers at this line
	- предупреждение: type defaults to «int» in declaration of «DEFINE_MUTEX» [-Wimplicit-int]
	- предупреждение: data definition has no type or storage class [по умолчанию включена]
	- предупреждение: в декларации функции указаны имена параметров без типов [по умолчанию 
	 включена]
а первая попытка заблокировать мьютекс приводит к ошибке:
«npdu_buffer_access» undeclared (first use in this function)
Подозреваю, что надо подключить какие-то заголовочные файлы, но вот какие? попытка подключить mutex.h окончилась полным провалось, ибо такого файла нет. Как их включить?

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

> а как иначе?

тебя родители не учили man pthread_mutex_init?

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

> нет, а как их использовать не для модуля?

Их -никак, это ядерные мютексы. Тебе нужно man pthread_mutex_init

Поскольку ты сейчас совсем деревянный, найди какую-нибудь мурзилку по POSIX threads. И старайся пользоваться чем-то вроде очередей.

tailgunner ★★★★★
()

да, глаза не смотрели. man pthread_mutex_init и google://posix threads помогло

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

> Multiple markers at this line

facepalm.cproject

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