first stab at blocking/non-blocking open & write semantics