"s there some reason that I shouldn't implement that in a single-threaded server?" you've asked that. i'm not an expert about concurrent programming, i've never used threads, but here: http://swtch.com/~rsc/thread/ (it's about that subject) if you read, you'll see that there that 'block' mechanisms are used to keep the system synchronyzed, becuase using that block mechanisms keep the system simple too. in systens that you arent going to use concurrent programming, you can do the synchronization in other ways, more simples, i think. if i didnt understand the document wrong, what I've said make some sense.. i'm new to plan9 'world', and what i'm seeing is that concurrent programming here is too much common, and you'll find a lot of specialist in the subject here, and, probably get good help to your software. good luck.