Oh, it's getting in line behind the request for 7; I missed the initial get(5). Makes sense!

I think you could do this by with a Mutex, Cond, and flag variable "took_my_portion", where the Throttle_get sets "took_my_portion = true" after doing the throttle.get(), and then signals the Cond and drops the Mutex, right? :)