Please report new issues athttps://github.com/DOCGroup
I recently did some work on the transport cache. This entry is to capture some thoughts about how it could be further improved. Right now when there are multiple connections to an endpoint, there is an entry in the cache for each connection. And arbitrary integer named "index_" is use to distinguish between entries. There should really be one entry per endpoint. The transports that represent connections to that endpoint should be chained to the endpoint. This would result in much cleaner, easier to understand (and probably faster) code. Also the "state" of the cache entry is stored in Cache_IntId (which is really the cache entry in spite of its non-descriptive name) This is actually the state of the Transport itself so it should be stored in the transport. If this change were made it would be possible to distinguish transactions that modified the cache itself from transactions that simply updated the status of a Transport contained (indirectly) within the cache. This in turn might allow more intelligent multi-thread protection of the cache vs the Transport states.