[Jobs API]: Implement JobDelegate::IsJoiningThread.
To let the user do special handling on the main thread e.g. Scavenging uses different tracing categories for background/foreground threads. Change-Id: I001b669e318bf88f39358ddb96482ec5ed4b62a9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2418986 Reviewed-by: François Doray <fdoray@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#809328}
This commit is contained in:

committed by
Commit Bot

parent
b1b3ccbd57
commit
bcff179ae4
@ -57,6 +57,12 @@ class BASE_EXPORT JobDelegate {
|
|||||||
// reused by a different thread after a worker_task returns.
|
// reused by a different thread after a worker_task returns.
|
||||||
uint8_t GetTaskId();
|
uint8_t GetTaskId();
|
||||||
|
|
||||||
|
// Returns true if the current task is called from the thread currently
|
||||||
|
// running JobHandle::Join().
|
||||||
|
bool IsJoiningThread() const {
|
||||||
|
return pooled_task_runner_delegate_ == nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr uint8_t kInvalidTaskId = std::numeric_limits<uint8_t>::max();
|
static constexpr uint8_t kInvalidTaskId = std::numeric_limits<uint8_t>::max();
|
||||||
|
|
||||||
|
@ -284,6 +284,7 @@ class JobDelegateImpl : public v8::JobDelegate {
|
|||||||
delegate_->NotifyConcurrencyIncrease();
|
delegate_->NotifyConcurrencyIncrease();
|
||||||
}
|
}
|
||||||
uint8_t GetTaskId() override { return delegate_->GetTaskId(); }
|
uint8_t GetTaskId() override { return delegate_->GetTaskId(); }
|
||||||
|
bool IsJoiningThread() const override { return delegate_->IsJoiningThread(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
base::JobDelegate* delegate_;
|
base::JobDelegate* delegate_;
|
||||||
|
Reference in New Issue
Block a user