Messages in this thread |  | | Date | Thu, 17 Jan 2013 18:59:36 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH 2/3] workqueue, async: implement work/async_current_func() |
| |
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@kernel.org> 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
|  |