Pigweed
 
Loading...
Searching...
No Matches
timed_thread_notification.h
1// Copyright 2021 The Pigweed Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License"); you may not
4// use this file except in compliance with the License. You may obtain a copy of
5// the License at
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12// License for the specific language governing permissions and limitations under
13// the License.
14#pragma once
15
16#include "pw_chrono/system_clock.h"
17#include "pw_sync/thread_notification.h"
18
19namespace pw::sync {
20
39 public:
40 TimedThreadNotification() = default;
41 ~TimedThreadNotification() = default;
44 TimedThreadNotification& operator=(const TimedThreadNotification&) = delete;
46
58
69 [[nodiscard]] bool try_acquire_until(
70 chrono::SystemClock::time_point deadline);
71};
72
73} // namespace pw::sync
74
75#include "pw_sync_backend/timed_thread_notification_inline.h"
Definition: thread_notification.h:36
Definition: timed_thread_notification.h:38
bool try_acquire_until(chrono::SystemClock::time_point deadline)
bool try_acquire_for(chrono::SystemClock::duration timeout)
std::chrono::duration< rep, period > duration
Alias for durations representable with this clock.
Definition: system_clock.h:86