Re: locking in hidraw
From: Oliver Neukum <oliver@neukum.org>
Date: 2008-11-12 14:50:40
From: Oliver Neukum <oliver@neukum.org>
Date: 2008-11-12 14:50:40
Am Mittwoch, 12. November 2008 15:39:49 schrieb Jiri Kosina:
On Tue, 4 Nov 2008, Jiri Slaby wrote:quoted
quoted
in this code: mutex_lock(&list->read_mutex); if (list->head == list->tail) { add_wait_queue(&list->hidraw->wait, &wait); set_current_state(TASK_INTERRUPTIBLE); it would make more sense to lock the mutex interruptable so all tasks sleep the same way. Is this intentional?Well, we have the test for pending signals just below that code, right?
So the tasks blocking on the mutex sleep all the time until another task is finished and unlocks the mutex, only to return to user space because signals are pending. Therefore why not make the wait on the mutex interruptible, so the signals are processed right away? Regards Oliver