This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: read(): varblk tape records...(& Fix for : read())


Hi Corinna,

It's a bug in your my_read1 code.

Yes, I know... I fixed it (the protection-fault) the next day, but it doesn't change the tapes behaviour.

Perhaps if I rewrite the outstanding issues another way, you might be
convinced to change the code even without a tape drive to test with...

Strange things in CygWin: (Tape-Fixed-Block.)

1/ Read buffer pointers are being reused by the write handler.

- This means writing buffer blocks might become 'staggered', by
 'inserted' data from a previous read call.  Rewind/Block-Seek
 doesn't reset these pointers either - resulting in loss of
 control over the tape device in some situations:  Having seeked
 a block, if a staggered write is incomplete, the next read will
 fail due to a new block being written OVER the one just seeked
 (since the read routine flushes any leftover write data first.)

2/ Possible drive-busy signal (in WinNT) leads to incomplete API result.

- This means getting drive stats while the drive is reading/writing
 under NT may result in the CygWin wrapper returning the BOT signal
 (Beginning Of Tape) even though it's currently writing that block.
 And calling the NT API would return the new block number if CygWin
 had used a cached flag instead (from when the drive wasn't busy.)
 Some programs fail because they expect the BOT signal to disappear.

The close-filemark issue isn't really a problem, and the Win32 1101 error
is being handled properly, I was just looking in the wrong file.

Regards,
Jason.

_________________________________________________________________
Find love today with ninemsn personals. Click here: http://ninemsn.match.com



-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]