1. 13 Apr, 2021 1 commit
    • Oran Agra's avatar
      Fix busy loop in ae.c when timer event is about to fire (#8764) · 175a9e31
      Oran Agra authored
      The code used to decide on the next time to wake on a timer with
      microsecond accuracy, but when deciding to go to sleep it used
      milliseconds accuracy (with truncation), this means that it would wake
      up too early, see that there's no timer to process, and go to sleep
      again for 0ms again and again until the right microsecond arrived.
      
      i.e. a timer for 100ms, would sleep for 99ms, but then do a busy loop
      through the kernel in the last millisecond, triggering many calls to
      beforeSleep.
      
      The fix is to change all the logic in ae.c to work with microseconds,
      which is good since most of the ae backends support micro (or even nano)
      seconds. however the epoll backend, doesn't support micro, so to avoid
      this problem it needs to round upwards, rather than truncate.
      
      Issue created by the monotonic timer PR #7644 (redis 6.2)
      Before that, all the timers in ae.c were in milliseconds (using
      mstime), so when it requested the backend to sleep till the next timer
      event, it would have worked ok.
      175a9e31
  2. 19 Jan, 2021 1 commit
  3. 07 Oct, 2019 1 commit
    • Oran Agra's avatar
      diskless replication rdb transfer uses pipe, and writes to sockets form the parent process. · 5a477946
      Oran Agra authored
      misc:
      - handle SSL_has_pending by iterating though these in beforeSleep, and setting timeout of 0 to aeProcessEvents
      - fix issue with epoll signaling EPOLLHUP and EPOLLERR only to the write handlers. (needed to detect the rdb pipe was closed)
      - add key-load-delay config for testing
      - trim connShutdown which is no longer needed
      - rioFdsetWrite -> rioFdWrite - simplified since there's no longer need to write to multiple FDs
      - don't detect rdb child exited (don't call wait3) until we detect the pipe is closed
      - Cleanup bad optimization from rio.c, add another one
      5a477946
  4. 25 Apr, 2016 1 commit
  5. 05 Dec, 2013 1 commit
  6. 28 Jun, 2013 1 commit
  7. 08 Nov, 2012 1 commit
  8. 29 Jun, 2012 1 commit
  9. 15 Dec, 2011 2 commits
  10. 07 Dec, 2011 1 commit
  11. 01 Jul, 2010 1 commit
    • antirez's avatar
      redis.c split into many different C files. · e2641e09
      antirez authored
      networking related stuff moved into networking.c
      
      moved more code
      
      more work on layout of source code
      
      SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;)
      
      cleanly compiling again after the first split, now splitting it in more C files
      
      moving more things around... work in progress
      
      split replication code
      
      splitting more
      
      Sets split
      
      Hash split
      
      replication split
      
      even more splitting
      
      more splitting
      
      minor change
      e2641e09
  12. 19 Feb, 2010 1 commit
  13. 20 Jan, 2010 1 commit
  14. 16 Dec, 2009 1 commit
  15. 28 Nov, 2009 1 commit
  16. 23 Nov, 2009 2 commits