for f in d.fields(): print f
I receive buzz from this "for". It never returns program execution from cycle. Actually it prints out as many fields as it has but I suppose it tries to get next item after the last item...
The way a python iterator terminates is via a StopIteration exception. I suspect that the exception is not being propagated from the server back to the
client if the enumeration is happening over the wire.
How to debug this otherwise ?
It's all open source, right ? so get into the code of the CORBA client and server, turn on logging if there is, a take it one step at a time.
Andi..
This happens only under CORBA thread. If I do this in the pure Python then everything okay. I have no clue how to narrow this bug or get closer to solution how to avid it or fix it.. What do you suggest? I know that is very hard to give advice on distance. I can try to narrow this bug or continue my investigations, if you know how.
Thank you.
AV> PyLucene.PythonThread is a subclass of Python's threading.Thread that AV> delegates the creation of the actual OS thread to libgcj. Wherever you see AV> threading.Thread used replace that with AV> PyLucene.PythonThread, that's all you AV> should be having to do. AV> We've done the same in Chandler where we use Twisted.
AV> class WorkerThread(PyLucene.PythonThread):
AV> Andi..
AV> On Sun, 6 Feb 2005, Yura Smolsky wrote:
Hello, Andi.
I hope you will help me with one issue. Here is situation:
I have CORBA object which is called Server. This server contains instance of IndexSearcher class. When somebody wants to call some method of this server then CORBA creates separate thread for each call. Every method of server work with IndexSearcher object.
So, we have some multi thread environment which operates with IndexSearcher object.
CORBA creates threads using threading.Thread. I guess, I need to replace threading.Thread with PythonThread threads. Right?
I attached code with creating of CORBA threads:
_thr_init = threading.Thread.__init__ _thr_id = threading._get_ident _thr_act = threading._active _thr_acq = threading._active_limbo_lock.acquire _thr_rel = threading._active_limbo_lock.release
class WorkerThread(threading.Thread):
I think everything is clear, but it is only for my mind. Maybe you will find a trap there. Please check it and answer can I just replace threading.Thread with PyLucene.PythonThread? Do I need to fix more code than just this replacement?
BIG thanks :)
Yura Smolsky
AV>
Yura Smolsky,
_______________________________________________ pylucene-dev mailing list [email protected] http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
