o rename {read|write}_ready() to {read|write}_available() which is
  slightly easier to understand.