Opened 9 years ago

Closed 9 years ago

#8595 closed Bugs (fixed)

mapped_region::flush - invalid interpretation of async parameter (win32)

Reported by: voropaev_sg@… Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: interprocess
Version: Boost 1.53.0 Severity: Problem
Keywords: flush async Cc:

Description

We had serious performance problem after transfer to boost version 1.53. The reason - bug in processing of "async" parameter of mapped_region::flush (windows version).

   else if(async && m_file_or_mapping_hnd != winapi::invalid_handle_value &&
           winapi::get_file_type(m_file_or_mapping_hnd) == winapi::file_type_disk)
  {
      return winapi::flush_file_buffers(m_file_or_mapping_hnd);
  }

So if async = true then flush function works in synchronous mode. I think the code must be:

else if(!async && ....

Sergey Voropaev

Change History (2)

comment:1 by Ion Gaztañaga, 9 years ago

Thanks for the report, just in time for Boost 1.54

comment:2 by Ion Gaztañaga, 9 years ago

Resolution: fixed
Status: newclosed

(In [84390]) Fixes #8595

Note: See TracTickets for help on using tickets.