Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: util/mac/service_management.h

Issue 572323002: Drop 10.5 support: use ServiceManagement.framework directly (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 10 matching lines...) Expand all
21 #include <string> 21 #include <string>
22 22
23 namespace crashpad { 23 namespace crashpad {
24 24
25 //! \brief Submits a job to the user launchd domain as in `SMJobSubmit()`. 25 //! \brief Submits a job to the user launchd domain as in `SMJobSubmit()`.
26 //! 26 //!
27 //! \param[in] job_cf A dictionary describing a job. 27 //! \param[in] job_cf A dictionary describing a job.
28 //! 28 //!
29 //! \return `true` if the job was submitted successfully, otherwise `false`. 29 //! \return `true` if the job was submitted successfully, otherwise `false`.
30 //! 30 //!
31 //! \note This function is provided because `SMJobSubmit()` does not exist prior 31 //! \note This function is provided because `SMJobSubmit()` is deprecated in Mac
32 //! to Mac OS X 10.6, and behaves flakily on Mac OS X 10.10 DP5 14A314h in 32 //! OS X 10.10. It may or may not be implemented using `SMJobSubmit()` from
33 //! that it hangs 25% of the time (radar 17365104). 33 //! `ServiceManagement.framework`.
34 bool ServiceManagementSubmitJob(CFDictionaryRef job_cf); 34 bool ServiceManagementSubmitJob(CFDictionaryRef job_cf);
35 35
36 //! \brief Removes a job from the user launchd domain as in `SMJobRemove()`. 36 //! \brief Removes a job from the user launchd domain as in `SMJobRemove()`.
37 //! 37 //!
38 //! \param[in] label The label for the job to remove. 38 //! \param[in] label The label for the job to remove.
39 //! \param[in] wait `true` if this function should block, waiting for the job to 39 //! \param[in] wait `true` if this function should block, waiting for the job to
40 //! be removed. `false` if the job may be removed asynchronously. 40 //! be removed. `false` if the job may be removed asynchronously.
41 //! 41 //!
42 //! \return `true` if the job was removed successfully or if an asynchronous 42 //! \return `true` if the job was removed successfully or if an asynchronous
43 //! attempt to remove the job was started successfully, otherwise `false`. 43 //! attempt to remove the job was started successfully, otherwise `false`.
44 //! Unlike previous systems, on Mac OS X 10.10, this function returns `true`
45 //! even if \a label names a job that does not exist. This is filed as radar
46 //! 18268941.
44 //! 47 //!
45 //! \note This function is provided because `SMJobRemove()` does not exist prior 48 //! \note This function is provided because `SMJobRemove()` is deprecated in Mac
46 //! to Mac OS X 10.6, and when \a wait is true, blocks for far too long on 49 //! OS X 10.10. It may or may not be implemented using `SMJobRemove()` from
47 //! Mac OS X 10.10 DP5 14A314h (radar 17365104; `_block_until_job_exits()` 50 //! `ServiceManagement.framework`.
48 //! contains a one-second sleep() call).
49 bool ServiceManagementRemoveJob(const std::string& label, bool wait); 51 bool ServiceManagementRemoveJob(const std::string& label, bool wait);
50 52
51 //! \brief Determines whether a specified job is loaded in the user launchd 53 //! \brief Determines whether a specified job is loaded in the user launchd
52 //! domain. 54 //! domain.
53 //! 55 //!
54 //! \param[in] label The label for the job to look up. 56 //! \param[in] label The label for the job to look up.
55 //! 57 //!
56 //! \return `true` if the job is loaded, otherwise `false`. 58 //! \return `true` if the job is loaded, otherwise `false`.
57 //! 59 //!
58 //! \note A loaded job is not necessarily presently running, nor has it 60 //! \note A loaded job is not necessarily presently running, nor has it
59 //! necessarily ever run in the past. 61 //! necessarily ever run in the past.
60 //! \note This function is provided because `SMJobCopyDictionary()` does not 62 //! \note This function is provided because `SMJobCopyDictionary()` is
61 //! exist prior to Mac OS X 10.6, and on Mac OS X 10.10 DP5 14A314h, it 63 //! deprecated in Mac OS X 10.10. It may or may not be implemented using
62 //! fails to return a job dictionary immediately after a job is loaded 64 //! `SMJobCopyDictionary()` from `ServiceManagement.framework`.
63 //! (radar 17365104).
64 bool ServiceManagementIsJobLoaded(const std::string& label); 65 bool ServiceManagementIsJobLoaded(const std::string& label);
65 66
66 //! \brief Determines whether a specified job is running in the user launchd 67 //! \brief Determines whether a specified job is running in the user launchd
67 //! domain. 68 //! domain.
68 //! 69 //!
69 //! \param[in] label The label for the job to look up. 70 //! \param[in] label The label for the job to look up.
70 //! 71 //!
71 //! \return The job’s process ID if running, otherwise `0`. 72 //! \return The job’s process ID if running, otherwise `0`.
72 //! 73 //!
73 //! \note This function is provided because `SMJobCopyDictionary()` does not 74 //! \note This function is provided because `SMJobCopyDictionary()` is
74 //! exist prior to Mac OS X 10.6, and on Mac OS X 10.10 DP5 14A314h, it 75 //! deprecated in Mac OS X 10.10. It may or may not be implemented using
75 //! fails to return a job dictionary immediately after a job is loaded 76 //! `SMJobCopyDictionary()` from `ServiceManagement.framework`.
76 //! (radar 17365104).
77 pid_t ServiceManagementIsJobRunning(const std::string& label); 77 pid_t ServiceManagementIsJobRunning(const std::string& label);
78 78
79 } // namespace crashpad 79 } // namespace crashpad
80 80
81 #endif // CRASHPAD_UTIL_MAC_SERVICE_MANAGEMENT 81 #endif // CRASHPAD_UTIL_MAC_SERVICE_MANAGEMENT
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698