diff options
author | Rene Ladan <rene@FreeBSD.org> | 2022-02-20 11:35:15 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2022-02-20 11:54:22 +0000 |
commit | 38a7a67b581c720d02ecf1f235f6ed51434e937e (patch) | |
tree | 686f2a16d7c997dd0937049cc89b15448f4b2117 /www/chromium/files/patch-base_files_file__path__watcher__bsd.cc | |
parent | 39da6a867124a65a9b365a2de9363cdd2978bc70 (diff) | |
download | ports-38a7a67b581c720d02ecf1f235f6ed51434e937e.tar.gz ports-38a7a67b581c720d02ecf1f235f6ed51434e937e.zip |
Diffstat (limited to 'www/chromium/files/patch-base_files_file__path__watcher__bsd.cc')
-rw-r--r-- | www/chromium/files/patch-base_files_file__path__watcher__bsd.cc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/www/chromium/files/patch-base_files_file__path__watcher__bsd.cc b/www/chromium/files/patch-base_files_file__path__watcher__bsd.cc new file mode 100644 index 000000000000..b4632c587e95 --- /dev/null +++ b/www/chromium/files/patch-base_files_file__path__watcher__bsd.cc @@ -0,0 +1,57 @@ +--- base/files/file_path_watcher_bsd.cc.orig 2022-02-07 13:39:41 UTC ++++ base/files/file_path_watcher_bsd.cc +@@ -0,0 +1,54 @@ ++// Copyright 2021 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 <memory> ++ ++#include "base/files/file_path_watcher.h" ++#include "base/files/file_path_watcher_kqueue.h" ++#include "base/memory/ptr_util.h" ++#include "build/build_config.h" ++ ++namespace base { ++ ++namespace { ++ ++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { ++ public: ++ FilePathWatcherImpl() = default; ++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; ++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; ++ ~FilePathWatcherImpl() override = default; ++ ++ bool Watch(const FilePath& path, ++ Type type, ++ const FilePathWatcher::Callback& callback) override { ++ DCHECK(!impl_.get()); ++ if (type == Type::kRecursive) { ++ if (!FilePathWatcher::RecursiveWatchAvailable()) ++ return false; ++ } else { ++ impl_ = std::make_unique<FilePathWatcherKQueue>(); ++ } ++ DCHECK(impl_.get()); ++ return impl_->Watch(path, type, callback); ++ } ++ ++ void Cancel() override { ++ if (impl_.get()) ++ impl_->Cancel(); ++ set_cancelled(); ++ } ++ ++ private: ++ std::unique_ptr<PlatformDelegate> impl_; ++}; ++ ++} // namespace ++ ++FilePathWatcher::FilePathWatcher() { ++ sequence_checker_.DetachFromSequence(); ++ impl_ = std::make_unique<FilePathWatcherImpl>(); ++} ++ ++} // namespace base |