LINUX.ORG.RU

Linux: spin_lock ???


0

0

есть глобальный список который используют несколько функций,
для синхронизации использую spin_lock/spin_unlock,
если откомпилировать с поддержкой spin_lock,
то при загрузке ядро вываливается заявляет что
spin_lock вызывается второй раз,

как я понимаю задача выволнялась,
и была как раз прервана в одной из моих функций,
а другая задача тоже вызвала одно из моих функций,

и как я прочитал spin_lock вообще ничто на не SMP машине,

что же тогда использовать в качестве синхронизатора?

anonymous

>вообще ничто на не SMP машине

точно.

>что же тогда использовать в качестве синхронизатора?

<asm/semaphore.h>

DECLARE_MUTEX(mutex);

down(&mutex);
// Что нужно делать
up(&mutex);

В том заголовке еще есть структура semaphore. DECLARE_MUTEX ставит count=1, число задач которые можно выполнять одновременно, так что не обязательно только одну.

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