diff --git a/src/pio_client.c b/src/pio_client.c index 4aaebcd6679b09972e780bc806555c3e311ab7db..e56f14b988fd579bfb47d68f963221d40d09a883 100644 --- a/src/pio_client.c +++ b/src/pio_client.c @@ -12,6 +12,9 @@ #include "cdi.h" #include "cdi_int.h" #include "dmemory.h" +#ifdef HAVE_LIBGRIB +#include "gribapi.h" +#endif #include "namespace.h" #include "taxis.h" #include "vlist.h" @@ -375,7 +378,6 @@ cdiPioClientStreamNOP(stream_t *streamptr) static void cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted) { - (void) recordBufIsToBeDeleted; int streamID = streamptr->self; int clientRank = commInqRankModel(), numClients = cdiPioCommInqSizeClients(), numColl = commInqSizeColl(), collRank = cdiPioCollRank(clientRank, numClients, numColl); @@ -401,6 +403,13 @@ cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted) } if (needsFlush) cdiPioClientStreamWinPost(streamID); cdiPioClientStreamWinDestroy(streamID); + if (recordBufIsToBeDeleted) switch (streamptr->filetype) + { +#ifdef HAVE_LIBGRIB + case CDI_FILETYPE_GRB: + case CDI_FILETYPE_GRB2: gribContainersDelete(streamptr); break; +#endif + } } static void