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
3 // found in the LICENSE file.
5 #include "base/mac/scoped_mach_port.h"
7 #include "base/mac/mach_logging.h"
14 void SendRightTraits::Free(mach_port_t port
) {
15 kern_return_t kr
= mach_port_deallocate(mach_task_self(), port
);
16 MACH_LOG_IF(ERROR
, kr
!= KERN_SUCCESS
, kr
)
17 << "ScopedMachSendRight mach_port_deallocate";
21 void ReceiveRightTraits::Free(mach_port_t port
) {
23 mach_port_mod_refs(mach_task_self(), port
, MACH_PORT_RIGHT_RECEIVE
, -1);
24 MACH_LOG_IF(ERROR
, kr
!= KERN_SUCCESS
, kr
)
25 << "ScopedMachReceiveRight mach_port_mod_refs";
29 void PortSetTraits::Free(mach_port_t port
) {
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";
36 } // namespace internal