Проблема - поток в ядре должен ждать события, из другова потока ядра, и по таймауту выходить аналог юзермодных WaitForSingleObject() и Event из винды я вижу решение следующим образом 1) делаем занятый семафор 2) запускаем таймер на необходимое время по истечению которого освобождаем семафор 3) этот же семафор освобождаем во втором потоке если необходимо мож кто знает как это проще сделать?
Если речь идет о ядре Linux 2.6.x, то тебе возможно подошли бы completion`s (см include/linux/completion.h) один поток ждет события по wait_for_completion_timeout() другой поток(потоки) делают(или не делают) complete()