OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/mac/scoped_mach_port.h" | 5 #include "base/mac/scoped_mach_port.h" |
6 | 6 |
7 #include "base/mac/mach_logging.h" | 7 #include "base/mac/mach_logging.h" |
8 | 8 |
9 namespace base { | 9 namespace base { |
10 namespace mac { | 10 namespace mac { |
11 namespace internal { | 11 namespace internal { |
12 | 12 |
13 // static | 13 // static |
14 void SendRightTraits::Free(mach_port_t port) { | 14 void SendRightTraits::Free(mach_port_t port) { |
15 kern_return_t kr = mach_port_deallocate(mach_task_self(), port); | 15 kern_return_t kr = mach_port_deallocate(mach_task_self(), port); |
16 MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) | 16 MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) |
17 << "ScopedMachSendRight mach_port_deallocate"; | 17 << "ScopedMachSendRight mach_port_deallocate"; |
18 } | 18 } |
19 | 19 |
20 // static | 20 // static |
21 void ReceiveRightTraits::Free(mach_port_t port) { | 21 void ReceiveRightTraits::Free(mach_port_t port) { |
22 kern_return_t kr = | 22 kern_return_t kr = |
23 mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); | 23 mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); |
24 MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) | 24 MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) |
25 << "ScopedMachReceiveRight mach_port_mod_refs"; | 25 << "ScopedMachReceiveRight mach_port_mod_refs"; |
26 } | 26 } |
27 | 27 |
| 28 // static |
| 29 void PortSetTraits::Free(mach_port_t port) { |
| 30 kern_return_t kr = |
| 31 mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_PORT_SET, -1); |
| 32 MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) |
| 33 << "ScopedMachPortSet mach_port_mod_refs"; |
| 34 } |
| 35 |
28 } // namespace internal | 36 } // namespace internal |
29 } // namespace mac | 37 } // namespace mac |
30 } // namespace base | 38 } // namespace base |
OLD | NEW |