Skip to content

Commit 5dc43cd

Browse files
authored
test: Fix L0_simple_lib--base (#8431) (#8436)
1 parent 3f7e34c commit 5dc43cd

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

src/simple.cc

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2020-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+
// Copyright 2020-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
//
33
// Redistribution and use in source and binary forms, with or without
44
// modification, are permitted provided that the following conditions
@@ -876,6 +876,10 @@ main(int argc, char** argv)
876876
FAIL_IF_ERR(
877877
TRITONSERVER_InferenceResponseDelete(completed_response),
878878
"deleting inference response");
879+
880+
// We need to make sure that the previous request was released before
881+
// reusing it.
882+
request_release_future.get();
879883
}
880884

881885
// The TRITONSERVER_InferenceRequest object can be reused for
@@ -906,10 +910,6 @@ main(int argc, char** argv)
906910
InferResponseComplete, reinterpret_cast<void*>(p)),
907911
"setting response callback");
908912

909-
// We need to make sure that the previous request was released before
910-
// reusing it.
911-
request_release_future.get();
912-
913913
// Register a new promise for the request callback barrier.
914914
barrier = std::make_unique<std::promise<void>>();
915915
request_release_future = barrier->get_future();
@@ -936,6 +936,10 @@ main(int argc, char** argv)
936936
FAIL_IF_ERR(
937937
TRITONSERVER_InferenceResponseDelete(completed_response),
938938
"deleting inference response");
939+
940+
// We need to make sure that the previous request was released before
941+
// reusing it.
942+
request_release_future.get();
939943
}
940944

941945
// There are other TRITONSERVER_InferenceRequest APIs that allow
@@ -967,7 +971,7 @@ main(int argc, char** argv)
967971

968972
// Register a new promise for the request callback barrier.
969973
barrier = std::make_unique<std::promise<void>>();
970-
request_release_future.get();
974+
request_release_future = barrier->get_future();
971975

972976
FAIL_IF_ERR(
973977
TRITONSERVER_InferenceRequestSetReleaseCallback(
@@ -993,6 +997,10 @@ main(int argc, char** argv)
993997
FAIL_IF_ERR(
994998
TRITONSERVER_InferenceResponseDelete(completed_response),
995999
"deleting inference response");
1000+
1001+
// Make sure the request is released before deleting it. If not, release
1002+
// callback will segfault after barrier is destructed.
1003+
request_release_future.get();
9961004
}
9971005

9981006
FAIL_IF_ERR(

0 commit comments

Comments
 (0)