I guess the major concern would be using priv->forced_close as an indicator
of whether the serial port is allowed to reopen or not. How about using
another variable to tag the MMSerialPort object as being disposed?  There
are a few call sites calling mm_serial_port_open(), so it seems better to
check inside mm_serial_port_open().

How do you think?  I can revise the patch if that makes sense.

Thanks,
Ben

On Tue, Nov 27, 2012 at 12:03 PM, Dan Williams <[email protected]> wrote:

> On Tue, 2012-11-27 at 10:57 -0800, Ben Chan wrote:
> > ---
> >  src/mm-serial-port.c |    7 +++++++
> >  1 files changed, 7 insertions(+), 0 deletions(-)
>
> I guess I'd rather fix the code that's attempting to re-open the port if
> it's not supposed to do that.  This has the effect of making ports
> single-use only, which wasn't originally the intention.  Forcing a port
> closed regardless of the open count doesn't necessarily mean the port
> object itself has been disposed.
>
> Dan
>
> > diff --git a/src/mm-serial-port.c b/src/mm-serial-port.c
> > index 0a8820d..dee2fec 100644
> > --- a/src/mm-serial-port.c
> > +++ b/src/mm-serial-port.c
> > @@ -849,6 +849,13 @@ mm_serial_port_open (MMSerialPort *self, GError
> **error)
> >
> >      device = mm_port_get_device (MM_PORT (self));
> >
> > +    /* If we forced closing the port, the MMSerialPort object has been
> disposed.
> > +     * Just return an error. */
> > +    if (priv->forced_close) {
> > +        mm_info ("(%s) skipped opening serial port that has been
> disposed", device);
> > +        return FALSE;
> > +    }
> > +
> >      if (priv->open_count) {
> >          /* Already open */
> >          goto success;
>
>
>
_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to