Monday, September 14, 2009

OpenBSD and (oops!) NO threads


I just found out that OpenBSD only has user-space threads.

User. Space.

This came up because stdout doesn't work quite right, apparently. My friend says that OpenBSD sets it to non-blocking. In general, non-blocking means "try to write to , and what isn't written... try it later." But every program I've ever seen assumes stdout is blocking, so in the OpenBSD environment the unwritten data will just get dropped on the floor. Answer: build as an unthreaded application so stdout will work appropriately. Are you kidding?

How can an operating system claim to be Modern, yet lack something as basic as kernel threads?