On 11/01, Tejun Heo wrote:
>
> diddling with
> sigmask in kernel generally isn't a good idea.

Agreed.

> If there are only a handful sites which need this type of behavior,
> wouldn't something like the following work?
>
> #define wait_event_freezekillable(wq, condition)                      \
> do {                                                                  \
>       DEFINE_WAIT(__wait);                                            \
>       for (;;) {                                                      \
>               prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE);      \
>               if (condition || fatal_signal_pending(current))         \
>                       break;                                          \
>               schedule();                                             \

No, this can't work, afaics.

Once the caller recieves a non-fatal signal (gets TIF_SIGPENDING),
schedule() won't block in TASK_INTERRUPTIBLE state.

IOW, wait_event_freezekillable() becomes a busy-wait loop.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to