1*6777b538SAndroid Build Coastguard Worker // Copyright 2021 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/task/sequence_manager/fence.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/check.h" 8*6777b538SAndroid Build Coastguard Worker #include "base/json/values_util.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/task/sequence_manager/enqueue_order.h" 10*6777b538SAndroid Build Coastguard Worker #include "base/task/sequence_manager/task_order.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h" 12*6777b538SAndroid Build Coastguard Worker #include "base/values.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace base { 15*6777b538SAndroid Build Coastguard Worker namespace sequence_manager { 16*6777b538SAndroid Build Coastguard Worker namespace internal { 17*6777b538SAndroid Build Coastguard Worker Fence(const TaskOrder & task_order)18*6777b538SAndroid Build Coastguard WorkerFence::Fence(const TaskOrder& task_order) : task_order_(task_order) { 19*6777b538SAndroid Build Coastguard Worker DCHECK_NE(task_order_.enqueue_order(), EnqueueOrder::none()); 20*6777b538SAndroid Build Coastguard Worker } 21*6777b538SAndroid Build Coastguard Worker Fence(EnqueueOrder enqueue_order,TimeTicks delayed_run_time,int sequence_num)22*6777b538SAndroid Build Coastguard WorkerFence::Fence(EnqueueOrder enqueue_order, 23*6777b538SAndroid Build Coastguard Worker TimeTicks delayed_run_time, 24*6777b538SAndroid Build Coastguard Worker int sequence_num) 25*6777b538SAndroid Build Coastguard Worker : task_order_(enqueue_order, delayed_run_time, sequence_num) {} 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker Fence::Fence(const Fence& other) = default; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker Fence& Fence::operator=(const Fence& other) = default; 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker Fence::~Fence() = default; 32*6777b538SAndroid Build Coastguard Worker 33*6777b538SAndroid Build Coastguard Worker // static BlockingFence()34*6777b538SAndroid Build Coastguard WorkerFence Fence::BlockingFence() { 35*6777b538SAndroid Build Coastguard Worker return CreateWithEnqueueOrder(EnqueueOrder::blocking_fence()); 36*6777b538SAndroid Build Coastguard Worker } 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker // static CreateWithEnqueueOrder(EnqueueOrder enqueue_order)39*6777b538SAndroid Build Coastguard WorkerFence Fence::CreateWithEnqueueOrder(EnqueueOrder enqueue_order) { 40*6777b538SAndroid Build Coastguard Worker return Fence(enqueue_order, TimeTicks(), 0); 41*6777b538SAndroid Build Coastguard Worker } 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker } // namespace internal 44*6777b538SAndroid Build Coastguard Worker } // namespace sequence_manager 45*6777b538SAndroid Build Coastguard Worker } // namespace base 46