gensio_open starts the gensio. gensios received from an accepter are open upon receipt, but connecting
gensios are started closed and need to be opened before use. If no error is returned, the open_done
callback will be called, if there is no error in the callback err value the gensio will be open. This
will open all children, too.
Note that the open_done callback will always be called even if you close the gensio before the open_done
callback happens or if an error occurs. This is guaranteed.
gensio_open_s is like gensio_open,butwaitsfortheopentocomplete.Normalgensio processing will
happen while waiting. Note that you must be careful to not call this from a callback, you should only
call this from a non-callback thread or a runner (see gensio_os_funcs(3) for details on runners).
gensio_open_nochild is like gensio_open, but assumes any child gensios are already open and just opens
this gensio. This can be useful if you have a gensio that is already opened (like you received it from
an accepter) and you want to stack another gensio on top of it. Only filter gensios will support this.
gensio_open_nochild_s is like gensio_open_nochild, but waits for the open to complete. See the notes on
gensio_open_s above for warnings.