cms-sw / cmssw

CMS Offline Software
http://cms-sw.github.io/
Apache License 2.0
1.09k stars 4.32k forks source link

Replace edm::Service<> access with extensions #12858

Open Dr15Jones opened 8 years ago

Dr15Jones commented 8 years ago

The edm::Service<> interface is extremely problematic with with threading plus many services are not meant to be called by user code. Therefore I propose breaking the concept of a Service into two parts: Service and Extension.

A Service would be configurable and could watch the state changes of the framework. Services would not be accessible to user code.

An Extension would be configurable. Modules which want to use an Extension would register for access and they would be handed their own copy of the Extension. This copy would know the context under which the module is presently running. When a method of the Extension is called, it would pass that context as function arguments to the member functions of an underlying component shared by all those Extension types. This allows the underlying component to be const during the call.

cmsbuild commented 8 years ago

A new Issue was created by @Dr15Jones (Chris Jones).

@davidlange6, @smuzaffar, @degano, @davidlt, @Dr15Jones can you please review it and eventually sign/assign? Thanks.

Following commands in first line of a comment are recognized

Dr15Jones commented 8 years ago

assign core

cmsbuild commented 8 years ago

New categories assigned: core

@Dr15Jones,@smuzaffar you have been requested to review this Pull request/Issue and eventually sign? Thanks

smuzaffar commented 3 years ago

@Dr15Jones , @makortel is it still on to do list?

makortel commented 3 years ago

It's an idea that would be useful, so I'd keep the issue open.