Opened 13 years ago

Closed 12 years ago

#3405 closed Support Requests (wontfix)

boost/interprocess is incompatible to Win9x

Reported by: anonymous Owned by: Ion Gaztañaga
Milestone: Boost 1.41.0 Component: interprocess
Version: Boost 1.40.0 Severity: Problem
Keywords: Cc:

Description

The use of boost/interprocess makes the resulting binary incompatible to Win98 because of the import of

SetFilePointerEx and GetFileSizeEx

(and it makes the binary fat even if you use only minor features of it... =( )

Change History (4)

comment:1 by Steven Watanabe, 13 years ago

Component: Noneinterprocess
Owner: set to Ion Gaztañaga

Win9x is not really supported. No one is running regression tests on anything earlier than XP as far as I can tell.

comment:2 by anonymous, 13 years ago

not very cool. sorry.

To make boost/interprocess/sync/*_lock.hpp useable under Win98 you not only need to wrap get_file_size and set_file_pointer_ex - you also must overcome a strange assumption set_file_pointer_ex does... It assumes that if you point the file-pointer over the actual size of the file and call SetEndOfFile afterwards, the file not only increases (what is true and documented) - the remaining bytes are initialized by zero. I cant find that this is documented - the documentation for SetFilePointerEx says "leaving the intervening bytes uninitialized" ... but it seems to work under XP ... I would call this a bug... but maybe its not the beauty that counts anyway...

(sorry, but after crawling this part of the boost-code i lost some respect points for the project...)

comment:3 by anonymous, 13 years ago

did you know that you can create a memory-mapped files that are backed up by the pageing file instead a concrete file on the harddisc via calling CreateFileMapping with INVALID_HANDLE_VALUE and a normal name? (see MSDN or (recommended to read (as i do just now): "Programming Applications for Microsoft Windows from Jeffrey Richter)) if you do this you have 2 Benefits: a) you dont have to create files in %TEMP% which stayes even if your syncronizing applications are closed (because Windows dump the file if the last application closes it) b) you never have syncronizing files that are invalid (and let the apps hang!) (because one of the syncing apps in the last run crashes (or would stopped by the debugger while developing)) would be very nice if you could update that in your code. thanks a lot.

comment:4 by Ion Gaztañaga, 12 years ago

Resolution: wontfix
Status: newclosed

Windows 95 family is not supported.

Note: See TracTickets for help on using tickets.