cvs commit: src/sys/kern sys_pipe.c
    Jean-Sebastien Pedron 
    dumbbell at FreeBSD.org
       
    Mon Nov 19 07:05:21 PST 2007
    
    
  
dumbbell    2007-11-19 15:05:20 UTC
  FreeBSD src repository
  Modified files:
    sys/kern             sys_pipe.c 
  Log:
  The kernel uses two ways to write data on a pipe:
      o  buffered write, for chunks smaller than PIPE_MINDIRECT bytes
      o  direct write, for everything else
  
  A call to writev(2) may receive struct iov of various size and the
  kernel may have to switch from one solution to the other. Before doing
  this, it must wake reader processes and any select/poll/kqueue up.
  
  This commit fixes a bug where select/poll/kqueue are not triggered
  when switching from buffered write to direct write. It adds calls to
  pipeselwakeup().
  
  I give more details on freebsd-arch@:
  http://lists.freebsd.org/pipermail/freebsd-arch/2007-September/006790.html
  
  This should fix issues with Erlang (lang/erlang) and kqueue.
  
  Reported by:    Rickard Green (Erlang)
  
  Revision  Changes    Path
  1.193     +4 -0      src/sys/kern/sys_pipe.c
    
    
More information about the cvs-src
mailing list