designing reliable concurrent software 1252183