[saga-rg] ISSUE 12

Andre Merzky andre at merzky.net
Thu Apr 20 11:33:15 CDT 2006


  12) change signature of read/write to have len_out as out param, and to return
      error code (== EAGAIN on unsucessful read)
      - DECIDED at GGF16
      - is that _really_ the right way?
      - OPEN, URGENT


At last GGF we discussed that issue - sorry for re-opening it.
My issue with the issue is, that this would be (almost) the only 
place where we return an error code.  Also, returning an
error code dviates from the POSIX version of read, which
would flag an error with a negative return value.

Sorry, I could not convince myself to change that in the
spec - hence this opinion poll on the mailing list:

 (A) read (in  int   len_in,
           in  char* buffer, 
           out int   len_out,
           out int   error);

     error is an enum, like EAGAIN, EINTR etc, see man (2)
     read.  Similar signature for other I/O calls

 (B) read (in  int    len_in, 
           in  char*  buffer, 
           out int    retval);

     retval is the length of data read if positive, and
     flags error if negative, with definitions for EAGAIN,
     EINTR etc.

     Yes, that semantically overloads a return value.

If no (other) votes come in, that issue will be marked
solved with (A) as decided in Athens.

I vote (B).

Cheers, Andre.

-- 
"So much time, so little to do..."  -- Garfield





More information about the saga-rg mailing list