blob: 7a4b09d8b64eea8b6f7191305102bcee91eff881 [file] [log] [blame]
library webdriver.lock;
import 'dart:async';
class Lock {
Completer _lock;
Future acquire() async {
while (isAcquired) {
await _lock.future;
}
_lock = new Completer();
}
void release() {
if (!isAcquired) {
throw new StateError('No lock to release');
}
_lock.complete();
_lock = null;
}
bool get isAcquired => _lock != null;
}