On 11/27, Kuan-Ying Lee wrote:
@@ -25,13 +25,9 @@ def task_lists(): t = g = init_task while True:
while True:
yield t
t = utils.container_of(t['thread_group']['next'],
task_ptr_type, "thread_group")
if t == g:
break
thread_head = t['signal']['thread_head']
for thread in lists.list_for_each_entry(thread_head, task_ptr_type, 'thread_node'):
yield thread
t = g = utils.container_of(g['tasks']['next'], task_ptr_type, "tasks")
Thanks!
I do not know python, but it seems that with this patch we can kill g or t? Can't
def task_lists(): task_ptr_type = task_type.get_type().pointer() init_task = gdb.parse_and_eval("init_task").address t = init_task
while True: thread_head = t['signal']['thread_head'] for thread in lists.list_for_each_entry(thread_head, task_ptr_type, 'thread_node'): yield thread
t = utils.container_of(t['tasks']['next'], task_ptr_type, "tasks") if t == init_task: return
work?
Oleg.