Re: [PATCH 2/3] workqueue, async: implement work/async_current_func()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, Linus.

On Thu, Jan 17, 2013 at 06:47:48PM -0800, Linus Torvalds wrote:
> On Thu, Jan 17, 2013 at 5:25 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> > Implement work/async_current_func() which query whether the current
> > task is a workqueue or async worker respectively and, if so, return
> > the current function being executed along with work / async item
> > related information.
> 
> So why the odd interface? The only user of it calls it with a

Yeah, I was doing something else in async and arguing between that and
current_is_async() and ended up keeping it as it was consistent with
the workqueue counterpart.

> NULL/NULL pair of arguments, and in general it's just way too complex
> to be an exported function at all. I *suspect* you chose that complex
> interface because you feel you may have some use for it inside of the
> async code itself, but why isn't that then not totally private to
> there?
> 
> IOW, why isn't the interface just
> 
>    static struct worker *current_worker(void)
>    {
>       if (current->flags & PF_WQ_WORKER)
>          return kthread_data(current);
>       return NULL;
>    }

I'd prefer to keep struct worker inside workqueue.c, so how about
keeping the workqueue part and make async part current_is_async()?

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux