On Fri, Mar 18, 2016 at 5:20 PM, Ben Pfaff <b...@ovn.org> wrote:

> On Thu, Mar 03, 2016 at 12:13:21AM -0800, Andy Zhou wrote:
> > It turns out there is no need for ovsdb_jsonrcp_session to have access
>
> s/jsonrcp/jsonrpc/
>
> > to the remote data structure. Make it opaque as a 'void *' pointer.
> > The pointer value is still useful when selecting ovsdb_jsonrpc_sessions
> > that of the same 'remote'.  This change will laster multi-threading
>
> s/laster/later/
>
> > patches easier because access to 'remote' does not need be protected.
> >
> > Signed-off-by: Andy Zhou <az...@ovn.org>
>
> I am not sure I understand the benefit yet.  The definition of a struct
> does not have to be visible for a piece of code to refer to it through a
> pointer.  Also, using a void pointer loses a lot of type safety.
>
> Can you explain further?
>

Yes, I agree this is a trade off.  Wonder if there is better way.

Currently 'remote' object are only handled within the main thread, so no
locking
is required to access those objects.  The intention of changing to 'void'
is to avoid
'sessions thread' code accidentally dereference 'remote' object, thus cause
race
conditions.  I was thinking the trade off is worthwhile... Please let me
know if you
don't agree.

>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to