| // Copyright 2015 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "base/process/port_provider_mac.h" | 
 |  | 
 | namespace base { | 
 |  | 
 | PortProvider::PortProvider() : lock_(), observer_list_() {} | 
 | PortProvider::~PortProvider() {} | 
 |  | 
 | void PortProvider::AddObserver(Observer* observer) { | 
 |   base::AutoLock l(lock_); | 
 |   observer_list_.AddObserver(observer); | 
 | } | 
 |  | 
 | void PortProvider::RemoveObserver(Observer* observer) { | 
 |   base::AutoLock l(lock_); | 
 |   observer_list_.RemoveObserver(observer); | 
 | } | 
 |  | 
 | void PortProvider::NotifyObservers(ProcessHandle process) { | 
 |   base::AutoLock l(lock_); | 
 |   for (auto& observer : observer_list_) | 
 |     observer.OnReceivedTaskPort(process); | 
 | } | 
 |  | 
 | }  // namespace base |