add: continue; if (sem > 0 && t->sem.blocking != sem)
context: dump_thread_list(int argc, char **argv){	struct thread *t;	struct hash_iterator i;	int32 requiredState = 0;	if (!strcmp(argv[0], "ready"))		requiredState = B_THREAD_READY;	else if (!strcmp(argv[0], "running"))		requiredState = B_THREAD_RUNNING;	else if (!strcmp(argv[0], "waiting"))		requiredState = B_THREAD_WAITING;	kprintf("thread         id  state       sem cpu  stack       name\n");	hash_open(sThreadHash, &i);	while ((t = hash_next(sThreadHash, &i)) != NULL) {		if (requiredState && t->state != requiredState)			continue;		kprintf("%p %6lx  %-9s", t, t->id, state_to_text(t, t->state));		// does it block on a semaphore?		if (t->state == B_THREAD_WAITING)			kprintf("%6lx  ", t->sem.blocking);		else			kprintf("     -  ");		// on which CPU does it run?		if (t->cpu)			kprintf("%2d", t->cpu->info.cpu_num);		else			kprintf(" -");		kprintf("  %p  %s\n", (void *)t->kernel_stack_base, t->name != NULL ? t->name : "<NULL>");	}	hash_close(sThreadHash, &i, false);	return 0;}