[OLE #10] Make out of process COM work with OXID based marshal ids

Robert Shearman rob at codeweavers.com
Tue Dec 21 04:55:26 CST 2004


Mike Hearn wrote:

>On Mon, 2004-12-20 at 17:56 +0000, Robert Shearman wrote:
>  
>
>>Sorry Mike, but we want to *remove* the current hacks for the 
>>RPC-runtime emulating named pipe code, not adding more.
>>    
>>
>
>Yes, of course, but we also want to keep the code in CVS in a roughly
>working situation. As it is, the code is guaranteed to crash with all
>InstallShields (or indeed any program that uses out of process COM). If
>Alexandre was to do a new tarball release tomorrow that's a lot of users
>who are now inconvenienced.
>  
>

And those same users would have been inconvenienced with the 20041201 
release. It wouldn't crash, but it's likely the program still wouldn't work.

>Currently table marshalling isn't implemented, nor is thread affinity.
>They're not 5-line patches either. They are on the todo list though and
>when they're done we can redo the threading to work more like native and
>remove the hacks.
>  
>

I'll see what I can come up with this week. I know you have some work on 
the stub manager outstanding and I think it would be fairly easy to 
build on that work to implement the table marshaling. Thread affinity 
(dispatching calls to the right apartment) should also be quite easy to 
do, although not a 5-line patch, of course.

>IIRC the patch I wrote for thread affinity at the start of the summer
>was never submitted precisely because it used a hack to ensure the
>thread could find its wine_pipe again (a TLS slot/stack thing). I think
>for thread affinity to work correctly we need to at least rework how
>pipes and threads interact, maybe even switch it on top of the RPC
>runtime transports entirely so re-entrancy works correctly. 
>  
>

I think we discussed about using a field in the RPCMESSAGE reserved for 
the RPC runtime (which is what we are emulating here). I don't think any 
other reworking is required.

>The patch really isn't as big as it looks, there are some formatting
>changes in there and some renaming+commenting. 
>  
>

The main changes I object to are adding more fields to structures that I 
was previously pruning of hacks.

Rob



More information about the wine-devel mailing list