Commit 0bd26cc3 authored by Thomas Jahns's avatar Thomas Jahns 🤸
Browse files

Rename queue_t to more fitting listSet.

parent c0f6a816
......@@ -222,11 +222,11 @@ src/pio_dbuffer.c -text
src/pio_impl.h -text
src/pio_interface.c -text
src/pio_interface.h -text
src/pio_list_set.c -text
src/pio_mpinonb.c -text
src/pio_posixasynch.c -text
src/pio_posixfpguardsendrecv.c -text
src/pio_posixnonb.c -text
src/pio_queue.c -text
src/pio_record_send.c -text
src/pio_rpc.c -text
src/pio_rpc.h -text
......
......@@ -65,7 +65,7 @@ libcdi_la_SOURCES = \
pio_posixasynch.c\
pio_posixfpguardsendrecv.c \
pio_posixnonb.c \
pio_queue.c \
pio_list_set.c \
pio_rpc.c \
pio_rpc.h \
pio_server.c \
......
......@@ -92,7 +92,7 @@ am_libcdi_la_OBJECTS = basetime.lo binary.lo calendar.lo cdf.lo \
model.lo namespace.lo pio.lo pio_comm.lo pio_dbuffer.lo \
pio_interface.lo pio_mpinonb.lo pio_record_send.lo \
pio_posixasynch.lo pio_posixfpguardsendrecv.lo \
pio_posixnonb.lo pio_queue.lo pio_rpc.lo pio_server.lo \
pio_posixnonb.lo pio_list_set.lo pio_rpc.lo pio_server.lo \
pio_util.lo resource_handle.lo servicelib.lo stream_cdf.lo \
stream_cgribex.lo stream_ext.lo stream_grb.lo \
stream_gribapi.lo stream_history.lo stream_ieg.lo \
......@@ -359,7 +359,7 @@ libcdi_la_SOURCES = \
pio_posixasynch.c\
pio_posixfpguardsendrecv.c \
pio_posixnonb.c \
pio_queue.c \
pio_list_set.c \
pio_rpc.c \
pio_rpc.h \
pio_server.c \
......@@ -538,11 +538,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_comm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_dbuffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_interface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_list_set.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_mpinonb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_posixasynch.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_posixfpguardsendrecv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_posixnonb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_queue.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_record_send.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_rpc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio_server.Plo@am__quote@
......
......@@ -125,16 +125,16 @@ c="dmemory.c \
gribapi.c \
swap.c \
binary.c \
cdf.c \
cdf.c \
pio.c \
pio_dbuffer.c \
pio_mpinonb.c \
pio_mpinonb.c \
pio_posixasynch.c \
pio_posixfpguardsendrecv.c\
pio_posixfpguardthread.c\
pio_posixfpguardthreadrefuse.c\
pio_posixnonb.c \
pio_queue.c"
pio_posixnonb.c \
pio_list_set.c"
h="cdi_limits.h taxis.h dtypes.h file.h cgribex.h gribapi.h service.h extra.h \
ieg.h cdi.h timebase.h calendar.h basetime.h datetime.h \
......
......@@ -30,7 +30,7 @@ struct dBuffer
typedef int ( * valDestroyFunction ) ( void * );
typedef bool (*eqPredicate)(void *, void *);
typedef struct queue_t queue_t;
typedef struct listSet listSet;
struct fileOpTag
{
......@@ -50,17 +50,17 @@ int dbuffer_reset ( struct dBuffer * );
void dbuffer_cleanup ( struct dBuffer ** );
size_t dbuffer_free ( struct dBuffer * );
/* pio_queue.c */
queue_t *queueInit(valDestroyFunction, eqPredicate);
void queueDestroy ( queue_t * );
int queueAdd(queue_t *, void *);
bool queueIsEmpty(queue_t *);
int queueDelNode(queue_t *, int (*predicate)(void *, void *),
void *data);
void *queueGet(queue_t *q, int (*predicate)(void *, void *), void *data);
/* pio_list_set.c */
listSet *listSetNew(valDestroyFunction, eqPredicate);
void listSetDelete(listSet *);
int listSetAdd(listSet *, void *);
bool listSetIsEmpty(listSet *);
int listSetRemove(listSet *, int (*predicate)(void *, void *),
void *data);
void *listSetGet(listSet *q, int (*predicate)(void *, void *), void *data);
typedef void (*elemOp)(void *elem, void *data);
void queueForeach(queue_t *q, elemOp func, void *data);
void listSetForeach(listSet *q, elemOp func, void *data);
/* pio_mpinonb.c */
int fowMPINONB ( const char * );
......
......@@ -20,18 +20,18 @@ struct cons
struct cons * next;
};
struct queue_t {
struct listSet {
struct cons *head, *tail;
valDestroyFunction valDestroy;
eqPredicate keyCompare;
int count;
};
queue_t *queueInit ( valDestroyFunction vD, eqPredicate kC )
listSet *listSetNew( valDestroyFunction vD, eqPredicate kC )
{
queue_t *myq;
listSet *myq;
myq = xmalloc ( sizeof ( queue_t ));
myq = xmalloc ( sizeof ( listSet ));
myq->head = NULL;
myq->tail = NULL;
......@@ -42,7 +42,8 @@ queue_t *queueInit ( valDestroyFunction vD, eqPredicate kC )
return myq;
}
void queueDestroy ( queue_t *q )
void
listSetDelete(listSet *q)
{
struct cons *curr, *succ;
......@@ -65,7 +66,7 @@ void queueDestroy ( queue_t *q )
}
int
queueAdd(queue_t *q, void *v)
listSetAdd(listSet *q, void *v)
{
struct cons *newCons;
......@@ -79,7 +80,7 @@ queueAdd(queue_t *q, void *v)
if ((newCons = malloc(sizeof(struct cons))) == NULL)
{
perror ( "pio_queue: queueAdd (): Not enough memory" );
perror ( "pio_listSet: listSetAdd (): Not enough memory" );
/* FIXME: why not abort? */
return 1;
}
......@@ -100,8 +101,8 @@ queueAdd(queue_t *q, void *v)
}
int
queueDelNode(queue_t *q, int (*predicate)(void *, void *),
void *data)
listSetRemove(listSet *q, int (*predicate)(void *, void *),
void *data)
{
struct cons **p;
......@@ -119,7 +120,7 @@ queueDelNode(queue_t *q, int (*predicate)(void *, void *),
}
void *
queueGet(queue_t *q, int (*predicate)(void *, void *), void *data)
listSetGet(listSet *q, int (*predicate)(void *, void *), void *data)
{
struct cons *p;
xassert(q && predicate);
......@@ -130,14 +131,14 @@ queueGet(queue_t *q, int (*predicate)(void *, void *), void *data)
}
bool
queueIsEmpty(queue_t *q)
listSetIsEmpty(listSet *q)
{
return q->head == NULL;
}
void
queueForeach(queue_t *q, void (*func)(void *elem, void *data), void *data)
listSetForeach(listSet *q, void (*func)(void *elem, void *data), void *data)
{
struct cons *p;
for (p = q->head; p; p = p->next)
......
......@@ -36,7 +36,7 @@ typedef struct
char name[];
} aFiledataM;
static queue_t *bibAFiledataM;
static listSet *bibAFiledataM;
static int
fileIDTest(void *a, void *fileID)
......@@ -180,7 +180,7 @@ size_t fwMPINONB ( int fileID, int tsID, const void *buffer, size_t len )
aFiledataM *of;
int rankNode = commInqRankNode ();
of = queueGet(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID);
of = listSetGet(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID);
xassert(of);
bool flush = tsID != of->tsID;
......@@ -232,14 +232,13 @@ int fcMPINONB ( int fileID )
xdebug("IOPE%d: write buffer, close file and cleanup, in %d",
rankNode, fileID );
if (!(of = queueGet(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID)))
xabort("pio_queue, fileID=%d not found", fileID);
if (!(of = listSetGet(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID)))
xabort("listSet, fileID=%d not found", fileID);
writeMPINONB(of);
/* dequeue file element */
iret = queueDelNode(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID);
/* remove file element */
iret = listSetRemove(bibAFiledataM, fileIDTest, (void *)(intptr_t)fileID);
/* timer output */
......@@ -258,7 +257,6 @@ int fcMPINONB ( int fileID )
}
/***************************************************************/
// baustelle, in modi vereinheitlichen, kapseln in pio_queue.c
static void
elemCheck(void *q, void *nm)
{
......@@ -266,7 +264,7 @@ elemCheck(void *q, void *nm)
const char *name = nm;
if (!strcmp(name, afm->name))
xabort("Filename %s is already enqueued\n", name);
xabort("Filename %s has already been added to set\n", name);
}
......@@ -298,14 +296,14 @@ int fowMPINONB ( const char *filename )
xdebug("buffersize=%ld", buffersize);
queueForeach(bibAFiledataM, elemCheck, (void *)filename);
listSetForeach(bibAFiledataM, elemCheck, (void *)filename);
of = initAFiledataMPINONB(filename, buffersize);
if ((id = queueAdd(bibAFiledataM, of)) < 0 )
if ((id = listSetAdd(bibAFiledataM, of)) < 0 )
xabort("filename %s not unique", of->name);
xdebug ( "IOPE%d: name=%s, init and enqueued aFiledataM, return id = %d",
rankNode, filename, id );
xdebug("IOPE%d: name=%s, init and added aFiledataM, return id = %d",
rankNode, filename, id);
return id;
}
......@@ -314,12 +312,12 @@ int fowMPINONB ( const char *filename )
void finalizeMPINONB(void)
{
if (!queueIsEmpty(bibAFiledataM))
xabort("queue bibAFiledataM not empty");
if (!listSetIsEmpty(bibAFiledataM))
xabort("set bibAFiledataM not empty");
else
{
xdebug("%s", "cleanup queue");
queueDestroy(bibAFiledataM);
xdebug("%s", "destroy set");
listSetDelete(bibAFiledataM);
}
}
......@@ -332,10 +330,10 @@ void initMPINONB ( void )
commRecvNodeMap ();
commDefCommsIO ();
bibAFiledataM = queueInit ( destroyAFiledataMPINONB, compareNamesMPINONB );
bibAFiledataM = listSetNew( destroyAFiledataMPINONB, compareNamesMPINONB );
if ( bibAFiledataM == NULL )
xabort ( "queueInit did not succeed" );
xabort ( "listSetNew did not succeed" );
}
#endif
......
......@@ -245,7 +245,7 @@ elemCheck(void *q, void *nm)
const char *name = nm;
if (!strcmp(name, bfd->name))
xabort("Filename %s is already enqueued\n", name);
xabort("Filename %s has already been inserted\n", name);
}
/***************************************************************/
......@@ -253,7 +253,7 @@ elemCheck(void *q, void *nm)
void pioWriterAIO(void)
{
bFiledataPA *bfd;
queue_t * bibBFiledataPA;
listSet * bibBFiledataPA;
long amount, buffersize;
char *messageBuffer, *pMB, *filename, *temp;
int messagesize, source, tag, i, id;
......@@ -266,7 +266,7 @@ void pioWriterAIO(void)
if ( nPrefStreams < 1 ) xabort("USAGE: # PREFETCH STREAMS >= 1");
xdebug ( "nProcsCollNode=%d on this node", nProcsCollNode );
bibBFiledataPA = queueInit ( destroyBFiledataPA, compareNamesBPA );
bibBFiledataPA = listSetNew(destroyBFiledataPA, compareNamesBPA);
sentFinalize = xmalloc ( nProcsCollNode * sizeof ( sentFinalize ));
for ( ;; )
......@@ -305,12 +305,12 @@ void pioWriterAIO(void)
xdebug("command %s, filename=%s, buffersize=%ld, amount=%ld",
command2charP[rtag.command], filename, buffersize, amount);
if (!(bfd = queueGet(bibBFiledataPA, fileIDTest,
if (!(bfd = listSetGet(bibBFiledataPA, fileIDTest,
(void *)(intptr_t)rtag.id)))
{
queueForeach(bibBFiledataPA, elemCheck, filename);
listSetForeach(bibBFiledataPA, elemCheck, filename);
bfd = initBFiledataPA(filename, buffersize, nProcsCollNode);
if ((id = queueAdd(bibBFiledataPA, bfd)) < 0)
if ((id = listSetAdd(bibBFiledataPA, bfd)) < 0)
xabort("fileID=%d not unique", rtag.id);
}
else
......@@ -331,9 +331,9 @@ void pioWriterAIO(void)
case IO_Send_buffer:
if (!(bfd = queueGet(bibBFiledataPA, fileIDTest,
if (!(bfd = listSetGet(bibBFiledataPA, fileIDTest,
(void *)(intptr_t)rtag.id)))
xabort("fileID=%d is not in queue", rtag.id);
xabort("fileID=%d is not in set", rtag.id);
amount = messagesize;
......@@ -352,9 +352,9 @@ void pioWriterAIO(void)
case IO_Close_file:
if (!(bfd = queueGet(bibBFiledataPA, fileIDTest,
if (!(bfd = listSetGet(bibBFiledataPA, fileIDTest,
(void *)(intptr_t)rtag.id)))
xabort("fileID=%d is not in queue", rtag.id);
xabort("fileID=%d is not in set", rtag.id);
amount = messagesize;
......@@ -383,8 +383,8 @@ void pioWriterAIO(void)
if ( bfd->finished )
{
xdebug ( "all are finished with file %d, delete node", rtag.id);
queueDelNode(bibBFiledataPA, fileIDTest,
(void *)(intptr_t)rtag.id);
listSetRemove(bibBFiledataPA, fileIDTest,
(void *)(intptr_t)rtag.id);
}
break;
case IO_Finalize:
......@@ -402,13 +402,13 @@ void pioWriterAIO(void)
}
if ( doFinalize )
{
if (!queueIsEmpty(bibBFiledataPA))
xabort("Queue bibBfiledataP is not empty.");
if (!listSetIsEmpty(bibBFiledataPA))
xabort("Set bibBfiledataP is not empty.");
else
{
xdebug("%s", "all files are finished, destroy queue,"
xdebug("%s", "all files are finished, destroy set,"
" return");
queueDestroy ( bibBFiledataPA );
listSetDelete(bibBFiledataPA);
}
return;
}
......
......@@ -71,7 +71,7 @@ fileIDCmpB(void *a, void *b)
return ((bFiledataPF *)a)->fileID == ((bFiledataPF *)b)->fileID;
}
static queue_t *bibAFiledataPF;
static listSet *bibAFiledataPF;
/***************************************************************/
......@@ -194,7 +194,7 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
struct fileOpTag rtag;
MPI_Status status;
bFiledataPF *bfd;
queue_t *bibBFiledataPF;
listSet *bibBFiledataPF;
long amount;
MPI_Comm commNode = commInqCommNode ();
int nProcsCollNode = commInqSizeNode () - commInqSizeColl ();
......@@ -202,7 +202,7 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
xdebug ( "ncollectors=%d on this node", nProcsCollNode );
bibBFiledataPF = queueInit ( destroyBFiledataPF, fileIDCmpB);
bibBFiledataPF = listSetNew( destroyBFiledataPF, fileIDCmpB);
sentFinalize = xmalloc ( nProcsCollNode * sizeof ( sentFinalize[0] ));
for ( ;; )
......@@ -218,12 +218,12 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
{
case IO_Open_file:
if (!(bfd = queueGet(bibBFiledataPF, fileIDTestB,
if (!(bfd = listSetGet(bibBFiledataPF, fileIDTestB,
(void *)(intptr_t)rtag.id)))
{
bfd = initBFiledataPF(rtag.id, nProcsCollNode);
if ((iret = queueAdd(bibBFiledataPF, bfd)) < 0)
if ((iret = listSetAdd(bibBFiledataPF, bfd)) < 0)
xabort("fileID=%d not unique", rtag.id);
}
......@@ -246,9 +246,9 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
case IO_Set_fp:
if (!(bfd = queueGet(bibBFiledataPF, fileIDTestB,
if (!(bfd = listSetGet(bibBFiledataPF, fileIDTestB,
(void *)(intptr_t)rtag.id)))
xabort("fileId=%d not in queue", rtag.id);
xabort("fileId=%d not in set", rtag.id);
xdebug("id=%d, command=%d ( %s ), send offset=%ld", rtag.id,
rtag.command, command2charP[rtag.command], bfd->offset);
......@@ -267,9 +267,9 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
case IO_Close_file:
if (!(bfd = queueGet(bibBFiledataPF, fileIDTestB,
if (!(bfd = listSetGet(bibBFiledataPF, fileIDTestB,
(void *)(intptr_t)rtag.id)))
xabort("fileId=%d not in queue", rtag.id);
xabort("fileId=%d not in set", rtag.id);
xdebug("id=%d, command=%d ( %s )), send offset=%ld", rtag.id,
rtag.command, command2charP[rtag.command], bfd->offset);
......@@ -296,7 +296,8 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
}
if ( bfd->finished )
queueDelNode(bibBFiledataPF, fileIDTestB, (void *)(intptr_t)rtag.id);
listSetRemove(bibBFiledataPF, fileIDTestB,
(void *)(intptr_t)rtag.id);
break;
case IO_Finalize:
{
......@@ -314,12 +315,12 @@ void fpgPOSIXFPGUARDSENDRECV ( void )
}
if ( doFinalize )
{
if (!queueIsEmpty(bibBFiledataPF))
xabort("queue bibBFiledataM not empty");
if (!listSetIsEmpty(bibBFiledataPF))
xabort("set bibBFiledataM not empty");
else
{
xdebug("%s", "cleanup queue");
queueDestroy ( bibBFiledataPF );
xdebug("%s", "destroy set");
listSetDelete(bibBFiledataPF);
}
return;
}
......@@ -418,14 +419,14 @@ size_t fwPOSIXFPGUARDSENDRECV( int fileID, int tsID, const void *buffer, size_t
int filled = 0;
aFiledataPF *afd;
afd = queueGet(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)fileID);
afd = listSetGet(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)fileID);
flush = ( tsID != afd->tsID ) ? 1 : 0;
if ( flush == 1 )
{
xdebug ( "tsID = %d, flush buffer", tsID );
queueForeach(bibAFiledataPF, flushOp, (void *)(intptr_t)tsID);
listSetForeach(bibAFiledataPF, flushOp, (void *)(intptr_t)tsID);
xmpi ( MPI_Barrier ( commInqCommColl ()));
}
......@@ -461,21 +462,19 @@ int fcPOSIXFPGUARDSENDRECV ( int id )
xdebug("write buffer, close file %d and cleanup", id);
afd = queueGet(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)id);
afd = listSetGet(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)id);
afd->command = IO_Close_file;
writePF ( afd, id );
/* dequeue file element */
iret = queueDelNode(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)id);
/* remove file element */
iret = listSetRemove(bibAFiledataPF, fileIDTestA, (void *)(intptr_t)id);
return iret;
}
/***************************************************************/
// baustelle, in modi vereinheitlichen, kapseln in pio_queue.c
static void
elemCheck(void *q, void *nm)
{
......@@ -483,7 +482,7 @@ elemCheck(void *q, void *nm)
const char *name = nm;
if (!strcmp(name, afd->name))
xabort("Filename %s is already enqueued\n", name);
xabort("Filename %s has already been added to set\n", name);
}
int fowPOSIXFPGUARDSENDRECV ( const char *filename )
......@@ -512,16 +511,15 @@ int fowPOSIXFPGUARDSENDRECV ( const char *filename )
firstOpen = false;
}
/* init and enqueue file element */
queueForeach(bibAFiledataPF, elemCheck, (void *)filename);
/* init and add file element */
listSetForeach(bibAFiledataPF, elemCheck, (void *)filename);
afd = initAFiledataPF ( filename, buffersize );
if ((id = queueAdd(bibAFiledataPF, afd)) < 0)
if ((id = listSetAdd(bibAFiledataPF, afd)) < 0)
xabort("filename %s not unique", afd->name);
xdebug ( "name=%s, init and enqueued aFiledataPF, return id = %d",
xdebug ( "name=%s, init and add aFiledataPF, return id = %d",
filename, id );
return id;
......@@ -538,12 +536,12 @@ void finalizePOSIXFPGUARDSENDRECV ( void )
xmpi ( MPI_Send ( &buffer, 1, MPI_INT, specialRank, tag, commNode ));
if (!queueIsEmpty(bibAFiledataPF))
xabort("queue bibAFiledataM not empty");
if (!listSetIsEmpty(bibAFiledataPF))
xabort("set bibAFiledataM not empty");
else
{
xdebug("%s", "cleanup queue");
queueDestroy ( bibAFiledataPF );
xdebug("%s", "destroy set");
listSetDelete(bibAFiledataPF);
}
}
......@@ -568,7 +566,7 @@ void initPOSIXFPGUARDSENDRECV ( void )
commSendNodeInfo ();
commRecvNodeMap ();
commDefCommsIO ();
bibAFiledataPF = queueInit ( destroyAFiledataPF, compareNamesAPF );
bibAFiledataPF = listSetNew( destroyAFiledataPF, compareNamesAPF );
}
}
......
......@@ -117,8 +117,6 @@ writeP(bFiledataP *bfd, long amount)
}
/***************************************************************/
// TODO: unify in IOModi, encapsulate in pio_queue.c
static void
elemCheck(void *q, void *nm)
{
......@@ -126,14 +124,14 @@ elemCheck(void *q, void *nm)
const char *name = nm;
if (!strcmp(name, bfd->name))
xabort("Filename %s is already enqueued\n", name);
xabort("Filename %s has already been added to the set\n", name);
}
void
pioWriterStdIO(void)
{
bFiledataP *bfd;
queue_t * bibBFiledataP;
listSet * bibBFiledataP;
size_t amount, buffersize;
char *messageBuffer = NULL;
char *pMB, *filename, *temp;
......@@ -146,7 +144,7 @@ pioWriterStdIO(void)
xdebug ( "ncollectors=%d on this node", nProcsCollNode );
bibBFiledataP = queueInit(destroyBFiledataP, compareNamesBP);
bibBFiledataP = listSetNew(destroyBFiledataP, compareNamesBP);
sentFinalize = xmalloc ( nProcsCollNode * sizeof ( sentFinalize ));
for ( ;; )
......@@ -190,14 +188,14 @@ pioWriterStdIO(void)
command2charP[rtag.command], filename, buffersize, amount);
if (!(bfd = queueGet(bibBFiledataP, fileIDTest,
if (!(bfd = listSetGet(bibBFiledataP, fileIDTest,
(void *)(intptr_t)rtag.id)))
{
queueForeach(bibBFiledataP, elemCheck, filename);
listSetForeach(bibBFiledataP, elemCheck, filename);
bfd = initBFiledataP(filename, buffersize, nProcsCollNode,
rtag.id);
if ((id = queueAdd(bibBFiledataP, bfd)) < 0)