At 10:39 AM 6/6/2001 -0800, [EMAIL PROTECTED] wrote:

>> Return-path: <[EMAIL PROTECTED]>
>> From: "Craig A. Berry" <[EMAIL PROTECTED]>
>> My only suggestion is to hack the mbx device driver and 
>> make the damn things stream-oriented while you're at it ;-).
>
>hadn't stream-mode mailboxes had been avail since v6.2?  
>(or maybe latent, undoc'ed until v7.x?)

<snip>

>IO$M_STREAM---Ignores QIO record boundaries. 

I don't think this is enough, though, unfortunately.  I tried putting this 
into all the read operations in Chuck Lane's piping code once, hoping it 
would save us from the much-discussed spurious line break problem.  It had 
no discernible effect.  

My guess is that in its heart of hearts a mailbox is still a record-oriented 
device and IO$M_STREAM just tells the read to get as many records as it can 
rather than terminating at one record.  When it "ignores" record boundaries 
I think that just means it keeps reading at record boundaries; it does not 
mean it strips record boundaries.  There may be other advantages to this, 
i.e., you might be able to read the entire contents of the mailbox in one 
I/O operation rather than several.

Notice that there is no IO$M_STREAM for write operations, so individual 
records are still being created whenever a low-level write occurs (including 
when the C RTL flushes buffered data that is waiting to be written).  
Correct me if I'm wrong about any of this -- I still find the whole mess 
rather confusing.


Reply via email to