Re: 6.0.5 foreach problem with state RU

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

 




----- Original Message -----
> 
> 
> ----- Original Message -----
> > On Fri, 2012-03-23 at 12:14 -0400, Dave Anderson wrote:
> > > Download from: http://people.redhat.com/anderson
> > > 
> > > Changelog:
> > 
> > >  
> > >  - Enhancement to the "foreach" command which adds a new "state"
> > >    task-indentifier argument that filters tasks by their task
> > >    state.
> > >    The state argument may be any of the task states displayed by
> > >    the "ps" command: RU, IN, UN, ST, ZO, SW or DE.
> > >    (rabin@xxxxxx, anderson@xxxxxxxxxx)
> > >  
> > 
> > This doesn't work for RU on my system because _RUNNING_ is 0x0 and (0x0
> > & 0x0) is 0x0 in this line in task.c:
> > 
> > 5603                 if ((fd->flags & FOREACH_STATE) && !(task_state(tc->task) & fd->state))
> > 5604                         continue;
> > 
> > If I change '&' to '==', it works, but I'm not sure if task_state(tc->task) is restricted
> > to a single flag.  Might need to check both, maybe?
>  
> Yeah, it can be multiple bits -- except in the case of TASK_RUNNING.
> 
> When I did the "ps" ST display overhaul to handle multiple bits being
> set, I went back and changed Rabin's "foreach" patch, which originally
> used "==" and therefore didn't account for multiple bits being set.
> But I forgot to make a special case for TASK_RUNNING in that case.
> My bad...
> 
> So it would have to be something like:
> 
>            if (fd->flags & FOREACH_STATE) {
>                    if ((fd->state == _RUNNING_) {
>                            if (task_state(tc->task) != _RUNNING_))
>                                    continue;
>                    } else if (!(task_state(tc->task) & fd->state))
>                            continue;:
>            }
> 
> Dave

I'll also fix it so that only one state may be entered.  As it is,
if multiple states are entered, only the last one is honored.
And because of the special TASK_RUNNING (0) state, it doesn't
make much sense to allow multiples.

Dave

--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility


[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux