Commit Graph

23 Commits

Author SHA1 Message Date
Anatol Belski
06332e6706 introduced DllMain for the main php DLL
The particular need on this is because of the current situation
with determining the background functionality for the
gettimeofday. DllMain allows to initialize stuff before the DLL
can be actually used. Thus, we use different time API on win7
and win8 and later, so the function pointer needs to be
initialized before anything in the DLL could even demand it.

The change also opens the door for the further optimizations,
as now we're able to do the very basic initializations for the
whole DLL before it could ever start to live. Fe on this way the
TLS initialization could be done, when utilizing the
DLL_THREAD_ATTACH/DETACH case. Whether it's really usable in
portable way should be synced with other platforms.

Be aware that it's dangerous as it possibly causes dead locks.
So to use with care. One willing to add items to DllMain should
better read the documentation twice and even then try to defer
the necessary action.
2015-06-02 15:56:32 +02:00
Anatol Belski
514aa4ef53 remove dead code 2015-05-20 19:14:06 +02:00
Anatol Belski
a6190359ad add vim modelines 2015-05-20 19:14:05 +02:00
Stanislav Malyshev
b7a7b1a624 trailing whitespace removal 2015-01-10 15:07:38 -08:00
Anatol Belski
bc33171ac6 improved system time function determination
It doesn't need to LoadLibrary and all that stuff every time, but
once on the first access. Also the functions which are not directly
used inlined now.
2014-12-23 13:00:30 +01:00
Anatol Belski
b022e54bd1 Fixed possible precision loss in microtime
This is related to the fix for bug #64370. MSVC natively supports __int64 type,
so calculating with 32 bit ints is neither necessary nor reliable. Therefore
an older piece of code is reused.
2013-03-23 17:40:06 +01:00
Anatol Belski
b903d2d6cd Backported patch for #64370 2013-03-15 19:04:40 +01:00
Xinchen Hui
6ecc9f1d9d Remove unused codes 2012-06-07 14:31:35 +08:00
slayercat
d9810af45a based on microsoft's description,the direct convert from FILETIME struct to __int64 is unsafe.
via http://technet.microsoft.com/en-us/library/ms724284(v=vs.85).aspx

"Do not cast a pointer to a FILETIME structure to either a
ULARGE_INTEGER* or __int64* value because it can cause alignment faults on 64-bit Windows."
2012-06-07 14:28:05 +08:00
Gustavo André dos Santos Lopes
3332c5be08 - Fixed bug #53297 (gettimeofday implementation in php/win32/time.c can return
1 million microsecs). (ped at 7gods dot org)
- Moved line out of order in NEWS.
2010-11-12 18:37:02 +00:00
Pierre Joye
274dad3b83 - MFH:
- add nanosleep
 - expose nanosleep and usleep
 - [DOC] time_ nanosleep and time_ sleep_ until available on windows
 - change nanosleep signature to match posix one
2009-01-19 02:35:22 +00:00
Kalle Sommer Nielsen
49494bed8b MFH:
* Last _WIN32_WINNT macro redef
* Include <config.w32.h> where _WIN32_WINNT was
2008-08-14 23:29:25 +00:00
Kalle Sommer Nielsen
540326c31f MFH:
* Remove NTDDI_VERSION declaring and use the one in config.w32.h
* Remove another _WIN32_WINNT macro redef in win32/time.c
2008-08-13 22:40:39 +00:00
Wez Furlong
cde7423cde Misc. win32 thread safety fixes. 2004-07-29 02:59:44 +00:00
Wez Furlong
848684fa96 make usleep actually work properly 2004-01-13 02:07:04 +00:00
Wez Furlong
7a7713eaeb Fix build for new usleep implementation.
NB: we now depend on windows 98 and later;
windows 95 does not have these timing functions.
2003-11-29 22:59:33 +00:00
Wez Furlong
dd60413c61 implement usleep for win32 2003-11-29 22:48:42 +00:00
Edin Kadribasic
2183565321 Allow dynamically compiled extensions to use gettimeofday() on win32. 2002-06-23 23:22:33 +00:00
James Moore
a97e0e1964 Fix for time.c under win32. Patch By: "Vanhanen, Reijo" <Reijo.Vanhanen@helsoft.fi>
@- microtime under windows now returns accurate values (James)
2001-02-04 15:52:32 +00:00
Stig Bakken
117a2fba07 * fixed some #if/#ifdef issues
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
   fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
   ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
   FP_FGETS(buf,len,sock,fp,issock)
   FP_FREAD(buf,len,sock,fp,issock)
   FP_FEOF(sock,fp,issock)
   FP_FGETC(sock,fp,issock)
1999-06-16 17:06:53 +00:00
Zeev Suraski
0818d96c97 A lot of cleanups... Removed old thread-safe code and other redundant code and files 1999-04-24 00:12:00 +00:00
Zeev Suraski
6f7c0edee3 Remove tls.[ch] 1999-04-23 20:06:01 +00:00
Zeev Suraski
aceaabceff PHP 4.0 1999-04-07 21:05:13 +00:00