Firstly a file isn't empty any more after the first WRITE.
Secondly we have item and not file locking so if the file is empty or not is irrelevant. And last but not least only if you have exclusive use of a work file for instance you may not have to worry about locks and waiting since you are holding the lock anyway and nobody else should be able to put one on it. But since with lousy programming this is still possible following the standard 'Never write without a prior lock' just makes sense.
Better safe than sorry!


On 25/10/2011 17:07, Sammartino, Richard wrote:
What if you were writing to an empty file?

Rich
----- Original Message -----
From: "Mecki Foerthmann"<mec...@gmx.net>
To: u2-users@listserver.u2ug.org
Sent: Monday, October 24, 2011 6:30:08 PM
Subject: Re: [U2] [UV] LIST.READU EVERY's "waiters" when there are writes w/o 
explicit readu.

Now why would anybody want to use a WRITE without a READU?
I can possibly understand that somebody would want to do it with a
WRITEV (i.e writing a flag on a record) but WRITE?
And WRITE totally ignoring locking would be outright stupid.

On 24/10/2011 22:28, Woodward, Bob wrote:
I would think that because you are not trying to obtain the lock in a
WRITE statement, it would not be classified as a waiter.  True, it's
waiting because of the lock but by not trying to obtain the lock, it's
only waiting for the blockage to clear.  If it were to be classified as
a waiter then I would expect to see a LOCKED clause on the WRITE
statement like there is on the READU.  For that matter, I'd expect to
see a WRITEU command as well and the standard WRITE to completely ignore
locking.

Just my guess, though.

BobW

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles
Stevenson
Sent: Monday, October 24, 2011 2:12 PM
To: U2 Users List
Subject: [U2] [UV] LIST.READU EVERY's "waiters" when there are writes
w/o explicit readu.

UV 10.2.10 on Windows is behaving differently from what I recall.
Are my expectations out of line?

Suppose Session A holds a readu lock; and Session B attempts a WRITE to
same record withOUT!!! 1st explicitly getting the readu lock.
Session B waits for Session A to release the lock before writing the
record.

While Session B is waiting,  does it show up as a "waiter" in LIST.READU

EVERY?
I expected so,  but it doesn't.


Session A                       Session B
_____________________________   ___________________
1A. ED VOC DUMMY
      (this sets the readu lock.)

2A. (stay in editor)            2B. run this:
                                       01:    OPEN 'VOC' TO F ELSE STOPM
'nope'
                                       02: ***READU REC FROM F, 'DUMMY'
ELSE NULL
                                       03:    WRITE '' TO F, 'DUMMY'

3A. Within ED:
       XEQ LIST.READU EVERY


If I UN-comment line 2, LIST.READU EVERY shows something like this:

       Active Read Waiters:      Owner   Waiter
       Device....  Inode....     Userno  Userno
       746117947    232860913      6116    3396


But when I comment out line 2, LIST.READU is silent.
I have not yet explored what the deadlock daemon does.

TIA,
cds


P.S. Yes, yes, "Bad Form", "Legacy Software", 20 min wait is
configurable, . . . we can talk later.

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to