[email protected] (Greg Lehey) writes:
> an agreement of some kind. But what if I want to merge the contents
> of another mail folder:
> cat oldmail >>/var/mail/grog
> That works, but it's playing with fire: if sendmail is delivering a
> message at the same time, it won't see me, and my cat doesn't get a
> lock beforehand, so both an incoming message and part of my mail
> folder could end up getting written to the same location. With
> mandatory locking, it would work, transparently.
Certainly not with range-locking rather than file-locking. cat is
certainly not guaranteed to be atomic, and while you shouldn't end up
writing things in the same location, what might happen unless you are
preventing multiple openers is:
cat writes part of oldmail to /var/mail/grog
sendmail locks /var/mail/grog
(cat may try to write more to /var/mail/grog but blocks)
sendmail delivers new mail
sendmail unlocks /var/mail/grog
cat writes the rest of oldmail to /var/mail/grog
You'll still probably end up with a broken mailbox.
To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-hackers" in the body of the message