Friday's meeting

Rod Widdowson rdw at steadingsoftware.com
Thu May 23 03:00:41 EDT 2013


I was looking at some code this week and I realized that I didn't understand
the threading and sharing model, with respect to the various types of data
we have.  I've spent much of my life in asynchronous kernels and so I tend
to over analyse these situations, so bear with me...

Can we spend 5 minutes talking about threading and data sharing tomorrow -
or maybe we can do this in here.

What I think I would like to understand is what the threading access rules
are for various structure types.  For instance, the following would be nice,
but is it accurate?

Attribute Filter, AttributeConnector & DataConnection definition:  
  - Single threaded access until #doInitialize() called
  - Multiple threaded access from then on (but this is expected to be read
only).

Attribute & Attribute Filter context:
  - Single threaded access guaranteed by the environment.

Logging:
  - "Thread safe" meaning that same can Object be called by multiple threads
and "the right thing will happen" - each method is Atomic, Consistent and
mostly Isolated.

But what about web flows?  How are they serialized?  What about other
structures?   What do Services & reload do for us ?
https://issues.shibboleth.net/jira/browse/IDP-257 has something to say about
this as well.

... Or is it too early to be worrying about this?  My instinct is that it is
never too early to worry about synchronization.

Rod



More information about the dev mailing list