Scheduling space on campus is, and always has been, a pain in the ass.
It mostly involves yield() and a context switcher.