We've had kind of emergency pool before which were used in such cases.
These legitime cases can happen not that frequently, so I guess -- can
we use it again?
if (cookies[i][j])
continue;
else
cookies[i][j] = some-value;
One wont know which exactly values we were using.
The other thing is that for the multiplicative cookie you should OR in
the value (~(~0UL>> 1) | 1) in order to make sure that the value is (a)
large and (b) odd.
I see, i'll update (at first, I occasionally translated odd as 'even' which
made me really scratching the head, until I realized it's 'odd'! :)
Cyrill