>>>>> "LT" == Leopold Toetsch <[EMAIL PROTECTED]> writes:

  LT> [3] the AIO docs in "info libc" indicate that after issueing an
  LT> aio_read or aio_write, the file position is undefined, because these
  LT> functions might execute in any order. The async tell or seek seems
  LT> really to be needed, if one async read depends on the previous async
  LT> read and the amount of data isn't known yet (e.g. tail -f the_log_file)

aio calls in solaris all have an offset arg (actually an aiocbstruct member
and you pass the aiocb) so there is no separate seek. this is due to the
fact that you don't have ordering with aio calls to files so each call
must set its own seek position. this of course means that the seek pos
afterwards is meaningless since it could be set by another call (as leo
points out). so mixing aio and sync calls on a single handle is likely
to be very ugly regarding seek positions.

this is another reason to drop seek/tell as separate ops and just add a
seek offset as an arg to the i/o ops. tell is useless in the aio
world. the user code needs to manage its own seek location and pass it
into each call.

uri

-- 
Uri Guttman  ------  [EMAIL PROTECTED]  -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs  ----------------------------  http://jobs.perl.org

Reply via email to