| 206 | |
| 207 | private: |
| 208 | void addRunner(Lock& lock) { |
| 209 | runners.push_back(map(ready(lock.promise.getFuture()), [=](Void) { |
| 210 | prioritylock_printf("Lock released\n"); |
| 211 | ++available; |
| 212 | if (waiting > 0 || runners.size() > 100) { |
| 213 | release.trigger(); |
| 214 | } |
| 215 | return Void(); |
| 216 | })); |
| 217 | } |
| 218 | |
| 219 | ACTOR static Future<Void> runner(PriorityMultiLock* self) { |
| 220 | state int sinceYield = 0; |