Definition at line 381 of file thread_test.cc.
◆ ICDataTestTask()
dart::ICDataTestTask::ICDataTestTask |
( |
IsolateGroup * |
isolate_group, |
|
|
const Array & |
ic_datas, |
|
|
Monitor * |
monitor, |
|
|
intptr_t * |
exited, |
|
|
std::atomic< bool > * |
done |
|
) |
| |
|
inline |
Definition at line 385 of file thread_test.cc.
390 : isolate_group_(isolate_group),
391 ic_datas_(ic_datas),
392 len_(ic_datas.Length()),
393 monitor_(monitor),
394 exited_(exited),
static void done(const char *config, const char *src, const char *srcOptions, const char *name)
◆ Run()
virtual void dart::ICDataTestTask::Run |
( |
| ) |
|
|
inlinevirtual |
Implements dart::ThreadPool::Task.
Definition at line 397 of file thread_test.cc.
397 {
398 const bool kBypassSafepoint = false;
400 kBypassSafepoint);
401
403
404 {
405 StackZone stack_zone(thread);
406
409 while (true) {
410 for (intptr_t cnt = 0; cnt < 0x1000; cnt++) {
411 for (intptr_t
i = 0;
i < len_;
i++) {
413 arr = ic_data.entries();
414 intptr_t num_checks = arr.Length() / 3;
415 if (num_checks < 0 || num_checks > 5) {
417 abort();
418 }
419 }
420 }
421
422 if (done_->load(std::memory_order_acquire)) {
423 break;
424 }
425
426 TransitionVMToBlocked blocked(thread);
427 }
428 }
429
431 {
432 MonitorLocker ml(monitor_);
433 ++*exited_;
434 ml.Notify();
435 }
436 }
ObjectPtr AtAcquire(intptr_t index) const
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static Thread * Current()
static void ExitIsolateGroupAsHelper(bool bypass_safepoint)
static bool EnterIsolateGroupAsHelper(IsolateGroup *isolate_group, TaskKind kind, bool bypass_safepoint)
◆ kTaskCount
constexpr intptr_t dart::ICDataTestTask::kTaskCount = 1 |
|
staticconstexpr |
The documentation for this class was generated from the following file: