Re: Performance Notes - Locking
Roger I Martin PhD <[email protected]>
| Newsgroups | gmane.comp.windows.devel.jawin |
|---|---|
| Message-ID | <[email protected]> |
I'm curious too. Since I am rewriting marshalling from scratch I need to understand this too. I'll look specifically tonight and talk about it tomorrow. Christophe Warland (FRSGlobal) wrote: >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) > > >