NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/includes/ds3d/common/helper/signalshot.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2023-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef DS3D_COMMON_HELPER_SIGNALSHOT_H
19 #define DS3D_COMMON_HELPER_SIGNALSHOT_H
20 
21 #include <ds3d/common/common.h>
22 
23 namespace ds3d {
24 
25 class SignalShot {
26  std::mutex _mutex;
27  std::condition_variable _cond;
28 
29 public:
30  void wait(uint64_t msec)
31  {
32  std::chrono::milliseconds t(msec);
33  std::unique_lock<std::mutex> locker(_mutex);
34  _cond.wait_for(locker, t);
35  }
36  void signal() { _cond.notify_all(); }
37  std::mutex& mutex() { return _mutex; }
38 };
39 
40 } // namespace ds3d
41 
42 #endif //
ds3d::SignalShot::mutex
std::mutex & mutex()
Definition: 9.1/sources/includes/ds3d/common/helper/signalshot.h:37
ds3d::SignalShot::wait
void wait(uint64_t msec)
Definition: 9.1/sources/includes/ds3d/common/helper/signalshot.h:30
ds3d::SignalShot::signal
void signal()
Definition: 9.1/sources/includes/ds3d/common/helper/signalshot.h:36
ds3d
Definition: sources/includes/ds3d/common/abi_dataprocess.h:25