*参照元 [#z3a188a3] #backlinks *説明 [#m05f5104] -パス: [[linux-4.4.1/fs/select.c]] -FIXME: これは何? --説明 **引数 [#ccbbcb23] -wait_queue_t *wait -- --[[linux-4.4.1/wait_queue_t]] -unsigned mode -- -int sync -- -void *key -- **返り値 [#l49ae154] -int -- **参考 [#w44af076] *実装 [#yd1bbf65] static int __pollwake(wait_queue_t *wait, unsigned mode, int sync, void *key) { struct poll_wqueues *pwq = wait->private; DECLARE_WAITQUEUE(dummy_wait, pwq->polling_task); - --[[linux-4.4.1/poll_wqueues]] --[[linux-4.4.1/DECLARE_WAITQUEUE()]] /* * Although this function is called under waitqueue lock, LOCK * doesn't imply write barrier and the users expect write * barrier semantics on wakeup functions. The following * smp_wmb() is equivalent to smp_wmb() in try_to_wake_up() * and is paired with smp_store_mb() in poll_schedule_timeout. */ smp_wmb(); pwq->triggered = 1; - --[[linux-4.4.1/smp_wmb()]] /* * Perform the default wake up operation using a dummy * waitqueue. * * TODO: This is hacky but there currently is no interface to * pass in @sync. @sync is scheduled to be removed and once * that happens, wake_up_process() can be used directly. */ return default_wake_function(&dummy_wait, mode, sync, key); - --[[linux-4.4.1/default_wake_function()]] } *コメント [#pe03fe05]