Hello,
I've already asked you about dealing with expensive resources and thread-safety in WebKit but I'm still confused.
I want (if it's possible):
1. setup some objects on a per-client (per-session) basis
2. do not have to deal with thread issues inside those objects (IOW, they are not thread-safe but this mustnât result in a deadlocks).
Looks like the only bulletproof way to do this is like this: 1. create an object for session 2. wrap it into thread-safe wrapper 3. put in on session
The questions are: 1. Am I right? Or may be there is a simpler way to go? 2. What is the best place to do #3?
To make my post clearer, here is an excerpt of how it is done currently:
from cms.web.localizer import WebKitLocalizer # A thread-safe wrapper around Localizer class
class NoOpLocalizerStub:
"A Localizer stub that does nothing."
def translate(self, msgid):
return msgid
def setUser(self, userid):
return
def setWorkgroup(self, groupid):
return
def getCurrentLanguage(self):
return 'en'class BasicSitePage(mvc.View):
# used by all other pages
fakelcz = NoOpLocalizerStub()
...
def awake(self, t):
mvc.View.awake(self, t)
if not t.session().hasValue('localizer'):
localizer = self.createLocalizer()
t.session().setValue('localizer', localizer)
def getLocalizer(self):
localizer = self.session().value('localizer', None)
return localizer or self.fakelcz
def createLocalizer(self):
try:
mapper, transformers = factory.makeLocalizerParameters()
return WebKitLocalizer(mapper, transformers)
except cms.config.Error, e:
self.handleError("Can't create localizer", e)As you see, this feels like a messy kludge.
It is (1) too much code and (2) not generic -- I'd have to do something similar for another object I want to share.
tia.
------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Webware-discuss mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-discuss
