Home | History | Annotate | Download | only in mac
      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