Sven Barth schrieb:

The solution mentioned above is a workaround for 2.4 where no fix is in place. Newer versions of FPC (maybe even 2.6, I don't know about that) will get an improved/fixed version of Now (how exactly seems to still be debated).

ACK

Also note that on platforms like Windows this would be a unnecessary call as there the current(!) timezone bias is located in a shared memory area which is mapped into each process by the kernel.

I don't think that this really is how Windows works. Delphi Now() retrieves an TSystemTime record (GetLocalTime), and converts its fields into an TDateTime value(EncodeDate/Time). A simple timezone bias is inapplicable to the TSystemTime data structure, but the kernel.dll may keep its conversion information somewhere in the DATA segment. On POSIX platforms gettimeofday and localtime_r is used instead (Delphi XE). All this handling makes Now() quite expensive, so that (a future) FPC should provide cheaper means for getting time stamps.

BTW, Windows itself provides GetSystemTime() based on *UTC*, and stored in TSystemTime. When monotonic timestamps are needed, even a Windows application can use this feature.

DoDi

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to