9front adds a inferno inspired mechanism for handling requests in parallel to the 9p service loop called srvrelease()/srvacquire().
often explicitely breaking up your request handling into separate processes and handing off a request to a process seems overkill. instead, you can do a srvrelease() which will (if neccesary) spawn a new process to handle the 9p service loop while your calling process is now free to block. once you finished you do a srvacquire() to serialize with the 9p service loop again. i used this to make usb drivers multithreaded. usb devs can be slow to respond or sometimes even hang. as the filesystem is bound onto /dev, a hanging usb device would hang all walks on /dev making the system unusable with a single threaded implementation. srvrelease()/srvacquire() made these changes trivial todo. -- cinap
