Messages in this thread | | | Date | Mon, 25 Apr 2011 18:01:15 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 3/3] signal: do_sigtimedwait() needs retarget_shared_pending() |
| |
On 04/25, Tejun Heo wrote: > > > @@ -2322,7 +2327,8 @@ int do_sigtimedwait(sigset_t *these, sig > > /* > > * None ready -- temporarily unblock those we're > > * interested while we are sleeping in so that we'll > > - * be awakened when they arrive. > > + * be awakened when they arrive. Unblocking is always > > + * fine, we can avoid set_current_blocked(). > > */ > > tsk->real_blocked = tsk->blocked; > > sigandsets(&tsk->blocked, &tsk->blocked, these); > > Maybe it would be a good idea to introduce a new helper which checks / > enforces that the operation indeed is only unblocking?
I hope nobody will change ->blocked directly, except this function and force_sig_info(). And daemonize/allow_signal/disallow_signal, but there are special and probably we can already kill this deprecated block/unblock code and forbid kernel_thread(CLONE_SIGHAND) + daemonize(). In fact I think daemonize() should go away.
So, I don't really think we need another helper to unblock something.
> Also, it can > be a pure preference but I think _locked suffix is better / more > common for APIs which expect the caller to be responsible for locking.
Again, I can rename... Cough, but in this case please simply suggest another name. set_tsk_blocked_locked?
Oleg.
| |