Vasumathi Sundaram wrote:
> Yes, this is an actual change. We want to remove an existing lock on the 
> destination descriptor that is now held for the duration of the system 
> call. This is the reason for deadlock issues.

It would be useful to be more explicit about exactly what is different:


-     This function is analogous to the writev() system call.  See
-     writev(2).  Instead  of sending out chunks of data, however,
-     the sendfilev() function  can  read  input  data  from  data
-     buffers or file descriptors.
+     This function is analogous to the writev(2) system call, but can
+     read from both buffers and file descriptors.  Unlike writev(),
+     it does not provide protection against multiple writers on a
+     single stream or file.  Applications must use their own
+     synchronization mechanisms if such a situation is possible.

That last paragraph might better read:

      This function is analogous to the writev(2) system call, but can
      read from both buffers and file descriptors.  Unlike writev(),
      in the case of multiple writers to a file the effect of
      sendfilev is not necessarily atomic; the writes may be
      interleaved. Application-specific synchronization methods
      must be employed if this causes problems.



-- 
Bart Smaalders                  Solaris Kernel Performance
barts at cyber.eng.sun.com              http://blogs.sun.com/barts
"You will contribute more with mercurial than with thunderbird."

Reply via email to