Я сталкиваюсь с кодом драйвера linux, в котором одновременно используются семафор и спин-блокировка:
struct semaphore lock;
spinlock_t int_lock;
unsigned long flag;
void dequeue()
{
down_interruptible(lock);
spin_lock_irqsave(int_lock,flag);
}
нужно ли использовать два вместе?