Skip to content

Commit 50afd24

Browse files
committed
Try to kill OnDemand Race, v2
1 parent 052d68b commit 50afd24

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2531,6 +2531,11 @@ void CP_ReaderRequestStepHandler(CManager cm, CMConnection conn, void *Msg_v, vo
25312531

25322532
STREAM_MUTEX_LOCK(CP_WSR_Stream->ParentStream);
25332533
CPTimestepList List = Stream->QueuedTimesteps;
2534+
if (Stream->CloseMessagesSent)
2535+
{
2536+
CP_verbose(Stream, TraceVerbose, "In RequestStepHandler, stream closing, ignore\n");
2537+
STREAM_MUTEX_UNLOCK(CP_WSR_Stream->ParentStream);
2538+
}
25342539
int RequestingReader = -1;
25352540
for (int i = 0; i < Stream->ReaderCount; i++)
25362541
{
@@ -2539,6 +2544,13 @@ void CP_ReaderRequestStepHandler(CManager cm, CMConnection conn, void *Msg_v, vo
25392544
RequestingReader = i;
25402545
}
25412546
}
2547+
if (RequestingReader == -1)
2548+
{
2549+
CP_verbose(Stream, TraceVerbose,
2550+
"In RequestStepHandler, RequestingReader not found, ignore\n");
2551+
STREAM_MUTEX_UNLOCK(CP_WSR_Stream->ParentStream);
2552+
}
2553+
25422554
while (List)
25432555
{
25442556
size_t NextTS = Stream->LastDemandTimestep + 1;
@@ -2581,12 +2593,6 @@ void CP_ReaderRequestStepHandler(CManager cm, CMConnection conn, void *Msg_v, vo
25812593
}
25822594

25832595
CP_verbose(Stream, TraceVerbose, "In RequestStepHandler, queueing request\n");
2584-
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-
}
25902596
StepRequest Request = calloc(sizeof(*Request), 1);
25912597
Request->RequestingReader = RequestingReader;
25922598
if (!Stream->StepRequestQueue)

0 commit comments

Comments
 (0)