Re: Performance Notes - Locking
"Christophe Warland (FRSGlobal)" <[email protected]>
| Newsgroups | gmane.comp.windows.devel.jawin |
|---|---|
| Message-ID | <[email protected]> |
Getting back to this issue, I'd love to hear someone's explanation around this line in jawin-2.0-alpha1/docs/perfdata/Performance1.html : "Locking. Some parts of the marshalling code use critical sections and kernel objects which might be contested especially in a server environment." In particular, what parts of the marshalling code are we talking about here? I'll be happy to try to fix it if only I knew where to start looking. Thanks. Regards, -- Christophe -----Original Message----- From: Christophe Warland (FRSGlobal) [mailto:[email protected]] Sent: Thursday, May 12, 2005 2:11 PM To: [email protected] Subject: Performance Notes - Locking I believe that I am actually suffering from a locking problem in the marshalling layer. I hooked up JAWIN in a client-server environment, with a custom pool of thread so as to avoid the apartment 'nightmare', and once in every few hundreds calls I get stuck in a locking situation. The docs on Performance Notes on Java/Win32 integration warned that it could happen. And I am now wondering if there is a technical solution or hack to the problem. Do any of you have a suggestion for this? Thanks. Regards, -- Christophe Warland PS: for those interested, here is a stacktrace from one on my Worker threads. As you can see it is stuck in a native method of the GenericStub: "Thread-33" daemon prio=5 tid=0x0098f258 nid=0x80 runnable [3c2f000..3c2fd8c] at org.jawin.marshal.GenericStub.dispatchInvoke0(Native Method) at org.jawin.marshal.GenericStub.dispatchInvoke(GenericStub.java:201) at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:587) at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:555) at org.jawin.DispatchPtr.invoke(DispatchPtr.java:510) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.s1.frs.rand.frsweb.broker.Worker.run(Worker.java:54)