[Squeak-e] first successful CapTP messaging trace

Robert Withers rwithers12 at attbi.com
Mon Jun 9 23:42:57 CEST 2003


Mark, I found the answers to my questions, so no worries about them.


On Monday, June 9, 2003, at 01:28 AM, Robert Withers wrote:
> I am confused about when to send the GCExportOp, with the 
> corresponding wireCount.  ImportTable holds the far handlers to 
> redirectors strongly, so they will never

actually, I learned that ImportTable holds a ProxyResolver, which in 
turn holds a weak reference to the Proxy.  When the Proxy goes away, 
it's finalization will need to trigger the resolver to either send a 
GCExportOp, if the Proxy is an Import, or drop the Question.  It does 
leave the ProxyResolver in the imports table at the same ID.

>  finalize.  Additionally, it looks as if the redirectors in the 
> exports table and their far handlers in the imports table never get 
> lost, so they must be getting reused somehow.

The processing of the GCExportOp will knock the entry out of the 
exports table.  It is the ProxyResolvers in the imports table which 
never get removed once they are added.  As new pass-by-proxy objects 
get published in the exports table, that table reassigns freed IDs.  
These reassigned IDs happen to correspond to the existing ProxyResolver 
in the Imports table, which are reused.   Since imports are used in 
processing every remote message send, for the message send's 
redirector, these import entries can get reused a lot.  :)

Rob



More information about the Squeak-e mailing list