Hi :)

> > > It might be a good idea use atomic operations instead of the spin lock
> > > (which is what the spin lock is using behind the scenes anyways).
> >
> > It may not be possible: further down there is a decision taken depending
> > on totalthreads/nreqthreads becoming 1, and thus you need a spinlock to
> > make that coherent with the ++/--.
> 
> Too bad.  Perhaps combining the quantities into a single word as
> follows would work:
> 
>   atomic.add(threads, 1<<16 | 1)
> 
> This has the further advantage of reducing the number of atomic
> operations.

Something along the lines of the following patch? I haven't really
tested this, but a superficial test with a tmpfs translator did not
turn up any obvious problems.

Justus

Reply via email to