2015-08-27 2 views
0

У меня возникла ситуация, когда мне нужно скопировать очередь ожидания в очередную очередь ожидания после ее инициализации. Могу ли я сделать это напрямую, назначив? любые побочные эффекты? Это то, что я хочу:Можно ли назначить очередь ожидания другому напрямую?

1. Initialize wait queue 1. 
2. call poll_wait() on wait queue 1. 
3. Copy wait queue 1 to wait queue 2. 

ответ

0

Вы не можете скопировать один waitqueue в другой: каждый ждать элемент может принадлежать не более чем к одному waitqueue.

Если вы говорите о moving waitqueue в другое место, вы можете попробовать, но обратите внимание, что дизайн не предназначен.

В случае poll_wait звонок, он определенно не поддерживает перемещение waitqueue. Дело в том, что poll_wait() вызывают для актуальные таблицы опроса (в реализация обратного вызова) хранит указатель на waitqueue в wait_address поле struct poll_table_entry (определено в include/linux/poll.h).