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. 4 5 #include "base/mac/scoped_mach_port.h" 6 7 #include "base/mac/mach_logging.h" 8 9 namespace base { 10 namespace mac { 11 namespace internal { 12 13 // static 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"; 18 } 19 20 // static 21 void ReceiveRightTraits::Free(mach_port_t port) { 22 kern_return_t kr = 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"; 26 } 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 36 } // namespace internal 37 } // namespace mac 38 } // namespace base 39