On Wed, 2011-07-27 at 16:32 +1000, Mark Goodwin wrote:
> On 07/23/2011 12:44 PM, Ken McDonell wrote:
> > 3. Max, there was an issue raised at the meeting held at the Aconex
> > offices about context vs channel locking, but my notes don't capture
> > enough detail to reconstruct your concerns. The locking currently works
> > like this
>
> IIRC, we discussed whether we still want to keep using multiple
> contexts per socket/channel connection to the same pmcd, or whether
> to change that to a 1:1 arrangement to simplify the locking.
> The current n:1 implementation was only really used for the old
> pmchart, which is now long gone.
Thanks Mark for reminding me of the discussion ... but I have a nagging
feeling that Max mentioned something else possibly about wanting to
destroy a context that was stuck waiting for a timeout ...
Anyway, the locking proved to be _not_ that difficult, and there is
quite a bit of complex code around profiles which are juggled across the
existing n:1 implementation, and I did not want to risk breaking this,
especially since there is both a client-side and a pmcd-side component,
and then taking care of the up-rev and down-rev cases for all
combinations of old and new versions ... it seemed safer to leave the
libpcp <--> pmcd protocols alone and do the "right" (tm) thing in libpcp
to lock the context and the ipc channel as required.
|