Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCHSET] workqueue: implement and use WQ_UNBOUND | Date | Wed, 21 Jul 2010 16:25:44 +0100 |
| |
Tejun Heo <tj@kernel.org> wrote:
> Each gcwq keeps track of currently running works in a hash table and looks > whether the work in question is already executing before starting executing > it. It's a bit complex but as a work_struct may be freed once execution > starts, the status needs to be tracked outside.
Thanks, that's what I wanted to know.
I presume this survives an executing work_struct being freed, reallocated and requeued before the address of the work_struct is removed from the hash table?
I can see at least one way of doing this: marking the work_struct address in the hash when the address becomes pending again so that the process of hash removal will cause the work_struct to be requeued automatically.
David
| |