Re: [pygccxml-development] Feature request: Creating thread safe methods
Brought to you by:
mbaas,
roman_yakovenko
From: Matthias B. <ba...@ir...> - 2006-08-01 12:51:24
|
Roman Yakovenko wrote: > It will be perfectly good to make an assumption, that most of the time > users > don't embed Python within C++, but rather extend Python. We can start to > discuss > a solution that will be based on this assumption. Well, the thing is just that in my case, I actually do embed Python in C++ and the cases I have to deal with now are those where the application does calls to Python (without knowing it). >> >> Then there's another issue related to thread-safety. Locking the >> Python >> >> interpreter is one thing, but you also have to catch any exception >> that >> >> is raised in the Python code and take some appropriate actions (like >> >> reporting the exception and, in my case, returning an appropriate >> error >> >> status code to Maya). >> > >> > Will exception neutral code will solve this problem? >> >> What do you mean by this? > > If we will generate an exception neutral code, then we move the > responsibility > to treat exception to boost.python and to the user. The only exception > to this > case is when you have to translate exception to some kind of return code. Right, that's what I want to do... >> If you mean that the actual policy class is outside py++ (but of course, >> the framework for this to work is inside py++), then I agree.... :) > > I think we understand each other. I meant, that you will define what > services you will need from py++ in order to implement this feature > efficiently. Also do you > mean "actual policy class" is something similar to classes that derives > from ArgTransformerBase? Yes, exactly. > By the way, do you want to rename it? Thread safety has nothing to do with > arguments. Yes, I know. I suppose, eventually we have to find a better name (but I think "call wrapper policy" also doesn't really capture it...) > Matthias, can you write some document that will contain description of > what you are going to do: I tried to come up with some initial document here: https://realityforge.vrsource.org/view/PyPP/CodeInserter - Matthias - |