Skip to content
Snippets Groups Projects
  1. Jun 11, 2013
    • Avi Kivity's avatar
      opensolaris: fix cv_timedwait() · da5939f9
      Avi Kivity authored
      cv_timedwait() has a relative timeout expressed in ticks (microseconds),
      while condvar_wait() has an absolute timeout expressed in nanoseconds.
      
      Replace the 1:1 macro with a function that does the correct translation.
      da5939f9
  2. Jun 10, 2013
  3. Jun 09, 2013
    • Guy Zana's avatar
      callouts: perform wake() outside of lock. · fb97aadf
      Guy Zana authored
      given the scheduler state, wake() sometimes rescheduled the dispatcher thread
      immidiately, and then it blocked on the mutex that is still held by the caller
      of _callout_stop_safe_locked().
      
      this patch does wake() outside of the lock to eliminated these spurious context
      switches.
      fb97aadf
    • Guy Zana's avatar
      41360613
    • Nadav Har'El's avatar
      Implement shutdown() on unix domain sockets · 30f6e9dd
      Nadav Har'El authored
      The existing shutdown() code only worked with AF_INET sockets, and returned
      ENOTSOCK for AT_LOCAL sockets, because we implemented the latter sockets in
      completely different code (in af_local.cc).
      
      So in uipc_syscalls_wrap.c, the same place we call a the special af-local
      socketpair(), we also need to call the special af-local shutdown().
      
      The way we do it is a bit ugly, but effective: shutdown() first calls
      shutdown_af_local(), and if that returns ENOTSOCK (so it's not an af_local
      socket), we continue trying the regular socket shutdown code.
      
      A better way would have been to add shutdown() to the fileops table -
      either the generic one (why not?), or invent a new mechanism whereby
      certain file types (in this case, "sockets" of all types) can have additional
      ops tables including in this case a shutdown() operation. Linux has
      something of this sort for implementing shutdown().
      30f6e9dd
  4. May 31, 2013
  5. May 30, 2013
  6. May 28, 2013
    • Nadav Har'El's avatar
      Fix getsockname() failure · 98a1fd2b
      Nadav Har'El authored
      getsockname() used to fail because by the time the call chain reached
      kern_getsockname() it got addrlen=0. The problem is getsockname1()
      which gives it an initialized local variable instead of the given
      addrlen.
      
      Most of these layers and copies are redundant, and are only left because
      of previous incarnations of the code which had copies from user space -
      but we need to at least get the unnecessary copies right ;-)
      98a1fd2b
  7. May 27, 2013
Loading