Skip to content

Commit 052d68b

Browse files
committed
Try to kill OnDemand Race
1 parent 502a788 commit 052d68b

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

source/adios2/toolkit/sst/cp/cp_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ struct _SstStream
198198
char *AbsoluteFilename;
199199
int GlobalOpRequired;
200200
StepRequest StepRequestQueue;
201+
int CloseMessagesSent;
201202

202203
/* writer side marshal info */
203204
void *WriterMarshalData;

source/adios2/toolkit/sst/cp/cp_writer.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,6 +1486,7 @@ static void SendCloseMsgs(SstStream Stream)
14861486

14871487
sendOneToEachReaderRank(Stream, Stream->CPInfo->SharedCM->WriterCloseFormat, &Msg,
14881488
&Msg.RS_Stream);
1489+
Stream->CloseMessagesSent = 1;
14891490
}
14901491

14911492
/*
@@ -2581,6 +2582,11 @@ void CP_ReaderRequestStepHandler(CManager cm, CMConnection conn, void *Msg_v, vo
25812582

25822583
CP_verbose(Stream, TraceVerbose, "In RequestStepHandler, queueing request\n");
25832584
assert(RequestingReader != -1);
2585+
if (Stream->CloseMessagesSent)
2586+
{
2587+
CP_verbose(Stream, TraceVerbose, "In RequestStepHandler, stream closing, ignore\n");
2588+
STREAM_MUTEX_UNLOCK(CP_WSR_Stream->ParentStream);
2589+
}
25842590
StepRequest Request = calloc(sizeof(*Request), 1);
25852591
Request->RequestingReader = RequestingReader;
25862592
if (!Stream->StepRequestQueue)

0 commit comments

Comments
 (0)