44 long XrdXrootdMonFMap::invVal = 1;
45 long XrdXrootdMonFMap::valVal = ~1;
55 if (!
fMap || slotNum < 0 || slotNum >=
fmSize ||
fMap[slotNum].cVal & invVal)
61 fMap[slotNum].cVal |= invVal;
70 bool XrdXrootdMonFMap::Init()
72 static const int bytes =
fmSize *
sizeof(cvPtr);
73 static int pagsz = getpagesize();
79 alignment = (bytes < pagsz ? 1024 : pagsz);
80 if (posix_memalign(&mPtr, alignment, bytes))
return false;
85 for (i = 1; i <
fmSize; i++)
87 fMap[i-1].cVal |= invVal;
104 if (!
free.cVal) {
if (
fMap || !Init())
return -1;}
124 for (; slotNum <
fmSize-1; slotNum++)
125 {
if (!(
fMap[slotNum].cVal & invVal))
return fMap[slotNum++].vPtr;}
XrdXrootdFileStats * Next(int &slotNum)
int Insert(XrdXrootdFileStats *fsP)