Re: [ID 20020523.001] POSIX::sleep not POSIX compliant
Abigail [Thu, 23 May 2002 07:53:33 +0000 (00:53 -0700)]
Message-ID: <20020523075333.A14658@ucan.foad.org>

p4raw-id: //depot/perl@16752

ext/POSIX/POSIX.pm
ext/POSIX/POSIX.pod
pod/perldelta.pod

index b94de21..05634f0 100644 (file)
@@ -720,7 +720,7 @@ sub setvbuf {
 
 sub sleep {
     usage "sleep(seconds)" if @_ != 1;
-    CORE::sleep($_[0]);
+    $_[0] - CORE::sleep($_[0]);
 }
 
 sub unlink {
index 4544a09..786df4c 100644 (file)
@@ -1145,9 +1145,12 @@ See also L<Math::Trig>.
 
 =item sleep
 
-This is identical to Perl's builtin C<sleep()> function
-for suspending the execution of the current for process
-for certain number of seconds, see L<perlfunc/sleep>.
+This is functionally identical to Perl's builtin C<sleep()> function
+for suspending the execution of the current for process for certain
+number of seconds, see L<perlfunc/sleep>.  There is one signifanct 
+difference, however: C<POSIX::sleep()> returns the number or
+B<unslept> seconds, while the C<CORE::sleep()> returns the
+number of slept seconds.
 
 =item sprintf
 
index f0e5356..bb7842d 100644 (file)
@@ -513,6 +513,12 @@ my __PACKAGE__ $obj now works.
 
 =item *
 
+POSIX::sleep() now returns the number of I<unslept> seconds
+(as thex POSIX standard says), as opposed to CORE::sleep() which
+returns the number of slept seconds.
+
+=item *
+
 The printf() and sprintf() now support parameter reordering using the
 C<%\d+\$> and C<*\d+\$> syntaxes.  For example