| Index: runtime/vm/pages.cc
|
| ===================================================================
|
| --- runtime/vm/pages.cc (revision 39411)
|
| +++ runtime/vm/pages.cc (working copy)
|
| @@ -139,7 +139,9 @@
|
| PageSpace::~PageSpace() {
|
| {
|
| MonitorLocker ml(tasks_lock());
|
| - ASSERT(tasks() == 0);
|
| + while (tasks() > 0) {
|
| + ml.Wait();
|
| + }
|
| }
|
| FreePages(pages_);
|
| FreePages(large_pages_);
|
| @@ -522,7 +524,7 @@
|
| // Wait for pending tasks to complete and then account for the driver task.
|
| {
|
| MonitorLocker locker(tasks_lock());
|
| - while (tasks() != 0) {
|
| + while (tasks() > 0) {
|
| locker.Wait();
|
| }
|
| set_tasks(1);
|
| @@ -636,9 +638,10 @@
|
|
|
| // Done, reset the task count.
|
| {
|
| - MonitorLocker locker(tasks_lock());
|
| + MonitorLocker ml(tasks_lock());
|
| ASSERT(tasks() == 1);
|
| set_tasks(tasks() - 1);
|
| + ml.Notify();
|
| }
|
| }
|
|
|
|
|