Your question is Implement Read-Write Lock With One Lock. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
How would you implement a service with only one lock that allows any number of simultaneous reads but blocks writes while reads are happening?