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.