main thread) in threaded debugging builds on Win32 and possibly other platforms
[perl #114496].
-A rare race condition that would lead to L<sleep|perlfunc/sleep>
-taking more time than requested, and upto a hang has been fixed [perl #33096].
+A rare race condition that would lead to L<sleep|perlfunc/sleep> taking more
+time than requested, and possibly even hanging, has been fixed [perl #33096].
=item Solaris
=item sleep
-On Win32 C<sleep> is limited to a maximum of 4294967 seconds, approximately 49
-days, and also signals do not cause C<sleep> to return early once a signal
-fires. C<sleep> will always wait the full time period before returning.
+Limited to a maximum of 4294967 seconds, approximately 49 days. (Win32)
=item sockatmark
* causes msctf.dll to be loaded into Perl by kernel), see [perl #33096].
*/
while (ticks.ft_i64 <= endtime) {
- /* if timeout's type is lengthened, remember to split 64b timeout
- * into multiple non-infinity runs of MWFMO */
- DWORD result = MsgWaitForMultipleObjects(count,handles,FALSE,(DWORD)(endtime-ticks.ft_i64)
- , QS_POSTMESSAGE|QS_TIMER|QS_SENDMESSAGE);
+ /* if timeout's type is lengthened, remember to split 64b timeout
+ * into multiple non-infinity runs of MWFMO */
+ DWORD result = MsgWaitForMultipleObjects(count, handles, FALSE,
+ (DWORD)(endtime - ticks.ft_i64),
+ QS_POSTMESSAGE|QS_TIMER|QS_SENDMESSAGE);
if (resultp)
*resultp = result;
if (result == WAIT_TIMEOUT) {
}
}
/* If we are past the end say zero */
- if(!ticks.ft_i64 || ticks.ft_i64 > endtime)
+ if (!ticks.ft_i64 || ticks.ft_i64 > endtime)
return 0;
/* compute time left to wait */
ticks.ft_i64 = endtime - ticks.ft_i64;
- /*if more ms than DWORD, then return max DWORD*/
- return ticks.ft_i64 <= UINT_MAX ? (DWORD)ticks.ft_i64:UINT_MAX;
+ /* if more ms than DWORD, then return max DWORD */
+ return ticks.ft_i64 <= UINT_MAX ? (DWORD)ticks.ft_i64 : UINT_MAX;
}
int