fewer indirection on port writer list calls
more information on errors, added error if port is unavailable
return nil in case a port is disconnected, also set the lifetime to 0