<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
My later change undoes this, and in general AutoFlushWr wasn't honoring it before -- in particular Flush and Length.<BR>
Insert the extra unlock/lock to "fix" that?<BR>
 <BR>
In particular, WrClass.i3:<BR>
 <BR>
PROCEDURE Unlock(wr: Wr.T);<BR>(* The writer wr must be locked and valid; unlock it and restore <BR>the private invariant of the writer implementation. *)<BR><BR>
 - Jay<BR> <BR>> Date: Mon, 31 Aug 2009 11:11:51 +0000<BR>> To: m3commit@elegosoft.com<BR>> From: jkrell@elego.de<BR>> Subject: [M3commit] CVS Update: cm3<BR>> <BR>> CVSROOT: /usr/cvs<BR>> Changes by: jkrell@birch. 09/08/31 11:11:51<BR>> <BR>> Modified files:<BR>> cm3/m3-libs/libm3/src/rw/: AutoFlushWr.m3 <BR>> <BR>> Log message:<BR>> Since Unlock is also documented as restoring invariants, restore<BR>> the early Unlock, and then put in an extra Lock after that.<BR>> In reality all the reader/writers implemented here don't do<BR>> anything in Unlock except unlock, so it was ok.<BR>> <BR></body>
</html>