Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
qt
macos_appnap.mm
Go to the documentation of this file.
1
// Copyright (c) 2011-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include "
macos_appnap.h
"
6
7
#include <AvailabilityMacros.h>
8
#include <Foundation/NSProcessInfo.h>
9
#include <Foundation/Foundation.h>
10
11
class
CAppNapInhibitor::CAppNapImpl
12
{
13
public
:
14
~CAppNapImpl
()
15
{
16
if
(
activityId
)
17
enableAppNap
();
18
}
19
20
void
disableAppNap
()
21
{
22
if
(!
activityId
)
23
{
24
@
autoreleasepool
{
25
const
NSActivityOptions
activityOptions
=
26
NSActivityUserInitiatedAllowingIdleSystemSleep
&
27
~(
NSActivitySuddenTerminationDisabled
|
28
NSActivityAutomaticTerminationDisabled
);
29
30
id
processInfo
= [
NSProcessInfo
processInfo
];
31
if
([
processInfo
respondsToSelector
:
@selector
(
beginActivityWithOptions
:reason:)])
32
{
33
activityId
= [
processInfo
beginActivityWithOptions
:
activityOptions
reason:
@"Temporarily disable App Nap for bitcoin-qt."
];
34
[
activityId
retain
];
35
}
36
}
37
}
38
}
39
40
void
enableAppNap
()
41
{
42
if
(
activityId
)
43
{
44
@
autoreleasepool
{
45
id
processInfo
= [
NSProcessInfo
processInfo
];
46
if
([
processInfo
respondsToSelector
:
@selector
(
endActivity
:)])
47
[
processInfo
endActivity
:
activityId
];
48
49
[
activityId
release];
50
activityId
=
nil
;
51
}
52
}
53
}
54
55
private
:
56
NSObject
*
activityId
;
57
};
58
59
CAppNapInhibitor::CAppNapInhibitor
() : impl(
new
CAppNapImpl
()) {}
60
61
CAppNapInhibitor::~CAppNapInhibitor
() =
default
;
62
63
void
CAppNapInhibitor::disableAppNap
()
64
{
65
impl
->disableAppNap();
66
}
67
68
void
CAppNapInhibitor::enableAppNap
()
69
{
70
impl
->enableAppNap();
71
}
CAppNapInhibitor::CAppNapImpl
Definition
macos_appnap.mm:12
CAppNapInhibitor::CAppNapImpl::disableAppNap
void disableAppNap()
Definition
macos_appnap.mm:20
CAppNapInhibitor::CAppNapImpl::enableAppNap
void enableAppNap()
Definition
macos_appnap.mm:40
CAppNapInhibitor::CAppNapImpl::activityId
NSObject * activityId
Definition
macos_appnap.mm:56
CAppNapInhibitor::CAppNapImpl::~CAppNapImpl
~CAppNapImpl()
Definition
macos_appnap.mm:14
CAppNapInhibitor::disableAppNap
void disableAppNap()
Definition
macos_appnap.mm:63
CAppNapInhibitor::CAppNapInhibitor
CAppNapInhibitor()
Definition
macos_appnap.mm:59
CAppNapInhibitor::enableAppNap
void enableAppNap()
Definition
macos_appnap.mm:68
CAppNapInhibitor::impl
std::unique_ptr< CAppNapImpl > impl
Definition
macos_appnap.h:21
CAppNapInhibitor::~CAppNapInhibitor
~CAppNapInhibitor()
macos_appnap.h
Ticks
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.
Definition
time.h:73
Generated on Thu Apr 16 2026 09:42:38 for Bitcoin Core by
1.10.0