1. 24 6月, 2015 1 次提交
    • E
      MapViewOfFileEx() error handling, UnhandledExceptiontHandler fixes. · fdbf5328
      Enrico Giordani 提交于
      [log] Improved error message if MapViewOfFileEx() fails.
      [fix] Child process call exist(1) if MapViewOfFileEx() fails.
      [new] GetForkOperationStatus() now detects if the child process is not anymore running.
      [fix] Error reporting in UnhandledExceptiontHandler() for "UNKNOWN EXCEPTION".
      [new] UnhandledExceptiontHandler() now calls the default C++ unhandled exceptiont handler.
      [log] Changed the closing statement of the BUG REPORT.
      [comment] Removed commented out code in Win32_dlmalloc.c.
      fdbf5328
  2. 23 6月, 2015 3 次提交
  3. 22 6月, 2015 1 次提交
  4. 20 6月, 2015 1 次提交
  5. 19 6月, 2015 1 次提交
  6. 11 6月, 2015 1 次提交
  7. 03 6月, 2015 1 次提交
  8. 01 6月, 2015 1 次提交
  9. 29 5月, 2015 1 次提交
  10. 01 5月, 2015 4 次提交
    • A
      Fix tabs in Win32_QFork.cpp · 05e0ac85
      Alexis Campailla 提交于
      05e0ac85
    • A
      Fix Windows version check · 0481910e
      Alexis Campailla 提交于
      Correclty check for Windows 8 version (6.2), in case this code
      path gets re-enabled again.
      Note that Windows 10 has version number 10.0, so it would finally
      take the code path originally intended for Windows 8 and higher.
      0481910e
    • A
      Disabling use of PAGE_REVERT_TO_FILE_MAP · 62416316
      Alexis Campailla 提交于
      VirtualProtect is failing with ERROR_INVALID_PARAMETER.
      It's possible that this code path never worked because it is
      checking for Windows version 8.0. Windows 8's version number is 6.2,
      not 8.0.
      
      Conflicts:
      	src/Win32_Interop/Win32_QFork.cpp
      62416316
    • A
      Qfork: RejoinCOWPages issue with swapping · 6076412a
      Alexis Campailla 提交于
      Fix for https://github.com/MSOpenTech/redis/issues/167
      
      RejoinCOWPages used to call QueryWorkingSetEx to figure out
      which pages had been dirtied since the memory map was protected
      with PAGE_WRITECOPY. But dirty pages that had been swapped out to
      the system page file would be reported as not valid
      (VirtualAttributes.Valid == 0) and so we wouldn't restore them into
      the file map.
      QueryWorkingSetEx only gives information about pages that are in the
      working set at the time it is called. Pages can be forced into the
      working set using VirtualLock, but that seems like a potentially
      risky / expensive solution.
      I implemented a solution that uses VirtualQuery to find out which
      regions have changed protection from PAGE_WRITECOPY.
      6076412a
  11. 24 3月, 2015 1 次提交
  12. 06 2月, 2015 3 次提交
    • A
      Port diskless replication to Windows · b93dc1c7
      Alexis Campailla 提交于
      During diskless replication the master forks a child, which on posix
      simply inherits the socket file descriptors for the connections to
      the slaves.
      A unix pipe is also used for the child to report the results back
      to the master.
      
      The bulk of the porting work is in making sure that the socket
      file descriptors and pipe file descriptor are propagated correctly
      from the master to its child.
      b93dc1c7
    • A
      Remove useless qfork synchronization event · b713fda5
      Alexis Campailla 提交于
      There is no apparent reason for the child to wait for the
      startOperation event to be signaled.
      b713fda5
    • A
      Refactor BeginForkOperation · 5677f532
      Alexis Campailla 提交于
      Refactor BeginForkOperation in preparation for diskless replication:
      - Separate copying of operation data and child process creation
      - Provide specific entry points for each operation type
      5677f532
  13. 02 2月, 2015 1 次提交
  14. 05 12月, 2014 1 次提交
    • A
      Revisit time functions · 08e4226e
      Alexis Campailla 提交于
      Addressing https://github.com/MSOpenTech/redis/issues/188
      
      - Made gettimeofday use GetSystemTimePreciseAsFileTime when available
      - Introduced definitions for gettimeofday_fast and gettimeofday_precise,
        so that calls can be specialized based on specific usage requirements
      - Introduced GetHighResRelativeTime, for high-resolution relative time
        measurements on all Windows versions.
      08e4226e
  15. 04 12月, 2014 1 次提交
    • A
      Issue 173: add child process log messages to main log file · 7827f413
      Alexis Campailla 提交于
      Slave processes were not using the master process log file.
      On Unix this is relying on the server.logfile variable being available
      to the slave processes through fork(), and reopening the logfile
      in the slaves (on every log event).
      On Windows we don't use server.logfile and require an explicity call
      to setLogFile.
      I resorted to explicitly passing the logfile to the slaves as a
      command line argument, so the logfile argument (and logging) can be
      available to the slave before qfork and globals setup have completed.
      
      Writing to the same file atomically from multiple processes requires
      using CreateFile with FILE_APPEND_DATA, instead of fopen, which provides
      atomicity on Unix but not on Windows.
      
      Also changed the implementation to not reopen the logfile on every
      log event, and not flushing the file on every write. Performance is
      dramaticaly improved this way.
      7827f413
  16. 06 11月, 2014 1 次提交
  17. 07 9月, 2014 1 次提交
  18. 13 8月, 2014 1 次提交
  19. 01 8月, 2014 1 次提交
  20. 30 7月, 2014 1 次提交
  21. 29 7月, 2014 1 次提交
  22. 17 7月, 2014 1 次提交
  23. 08 7月, 2014 1 次提交
  24. 04 7月, 2014 1 次提交
  25. 12 6月, 2014 1 次提交
  26. 30 5月, 2014 1 次提交
  27. 28 5月, 2014 1 次提交
  28. 16 5月, 2014 1 次提交
  29. 09 5月, 2014 1 次提交
  30. 16 4月, 2014 1 次提交
  31. 08 4月, 2014 1 次提交
  32. 04 4月, 2014 1 次提交
  33. 11 3月, 2014 1 次提交