[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
On Sun, Nov 15, 2009 at 01:31:16PM -0500, Elad Efrat wrote:
> On Sun, Nov 15, 2009 at 1:21 PM, David Laight <david%l8s.co.uk@localhost>
> > 1) You need a sleep lock to only allow one thread into the code.
> Hm, so we need that for BYFILE but not for BYPID?
The purpose of the 'mark' is to avoid returning a file more than once.
So you don't want 2 processes setting different values at the same time.
> > 2) If the 'seq' wraps, you need to do a full scan to set the
> > ? marker on all 'struct file' back to zero.
> Why? Once the scan's done, the seq value in struct file can be discarded...
scan 1 proceeses all files, each now has a seq of '1'
scans 2 onwards are partial or aborted.
we now do a full scan with seq of '1' - misses loads of entries.
> > 3) Any scan of the process table needs to worry about the consequences
> > ? of the table growing.
I'm not 100% sure of the difference between BYFILE and BYPID, especially
when the only to enumerate all files is from the pid table.
David Laight: david%l8s.co.uk@localhost
Main Index |
Thread Index |