$|=1; print "1..15\n"; use Coro; use Coro::RWLock; my $l = new Coro::RWLock; print "ok 1\n"; $l->rdlock; print (($l->tryrdlock ? "" : "not "), "ok 2\n"); print (($l->trywrlock ? "not " : ""), "ok 3\n"); $l->unlock; $l->unlock; print (($l->trywrlock ? "" : "not "), "ok 4\n"); print (($l->trywrlock ? "not " : ""), "ok 5\n"); print (($l->tryrdlock ? "not " : ""), "ok 6\n"); async { print "ok 8\n"; $l->wrlock; print "ok 10\n"; $l->unlock; $l->rdlock; print "ok 11\n"; cede; print "ok 14\n"; }; print "ok 7\n"; cede; print "ok 9\n"; $l->unlock; cede; print "ok 12\n"; $l->rdlock; print "ok 13\n"; cede; print "ok 15\n";