[e-lang] CapTP in E progress report #3

Kevin Reid kpreid at mac.com
Tue Jul 31 20:56:57 EDT 2007


GCAnswerOp, GCExportOp, and incoming TerminatedOp have been implemented.


Unobvious fact: everything in the questions table is a promise tail.


My previous statement about wireCounts was inaccurate. The Exports  
table stores its wire counts (how many New*Descs or ImportDescs have  
been sent) as the CommTable allocation counts, but the Imports table  
does not; this is because, as <http://www.erights.org/elib/distrib/ 
captp/dagc.html> describes, there is no message from the exporter to  
the importer reporting that a particular Imports entry is to be freed.

Instead, the wire count should be stored separately (in whatever  
object is in the value field of that table). Whenever the count of  
local proxies for that import goes to zero, a GCExportOp should be  
sent with the current stored wireCount and the wireCount zeroed. The  
receiver of GCExportOp should decrease the allocation count in the  
Exports table by the passed amount.


What are the expected consequences of TerminatedOp? I thought of  
breaking eventual refs, and I got __reactToLostClient because it came  
along with the comm-tables, but is there anything else?

(Both http://www.erights.org/elib/distrib/captp/partition.html and  
http://www.erights.org/elib/distrib/captp/TerminatedOp.html lack  
details.)

-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>




More information about the e-lang mailing list