Doc tweaks.
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index 132d65e..f746220 100644 (file)
@@ -1,4 +1,3 @@
-//depot/perl/pod/perldiag.pod#272 - edit change 14824 (text)
 =head1 NAME
 
 perldiag - various Perl diagnostics
@@ -45,6 +44,14 @@ letter.
 
 =over 4
 
+=item A thread exited while %d other threads were still running
+
+(W) When using threaded Perl, a thread (not necessarily the main
+thread) exited while there were still other threads running.
+Usually it's a good idea to first collect the return values of the
+created threads by joining them, and only then exit from then main
+thread.  See L<threads>.
+
 =item accept() on closed socket %s
 
 (W closed) You tried to do an accept on a closed socket.  Did you forget
@@ -183,26 +190,26 @@ spots.  This is now heavily deprecated.
 must either both be scalars or both be lists.  Otherwise Perl won't
 know which context to supply to the right side.
 
-=item Attempt to access disallowed key '%s' in a fixed hash
+=item Attempt to access disallowed key '%s' in a restricted hash
 
 (F) The failing code has attempted to get or set a key which is not in
-the current set of allowed keys of a fixed hash.
+the current set of allowed keys of a restricted hash.
 
-=item Attempt to clear a fixed hash
+=item Attempt to clear a restricted hash
 
-(F) It is currently not allowed to clear a fixed hash, even if the
+(F) It is currently not allowed to clear a restricted hash, even if the
 new hash would contain the same keys as before.  This may change in
 the future.
 
-=item Attempt to delete readonly key '%s' from a fixed hash
+=item Attempt to delete readonly key '%s' from a restricted hash
 
 (F) The failing code attempted to delete a key whose value has been
-declared readonly from a fixed hash.
+declared readonly from a restricted hash.
 
-=item Attempt to delete disallowed key '%s' from a fixed hash
+=item Attempt to delete disallowed key '%s' from a restricted hash
 
-(F) The failing code attempted to delete from a fixed hash a key which
-is not in its key set.
+(F) The failing code attempted to delete from a restricted hash a key
+which is not in its key set.
 
 =item Attempt to bless into a reference
 
@@ -863,6 +870,16 @@ switches, or explicitly, failed for the indicated reason.  Usually this
 is because you don't have read permission for a file which you named on
 the command line.
 
+=item Can't open a reference
+
+(W io) You tried to open a scalar reference for reading or writing,
+using the 3-arg open() syntax :
+
+    open FH, '>', $ref;
+
+but your version of perl is compiled without perlio, and this form of
+open is not supported.
+
 =item Can't open bidirectional pipe
 
 (W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported.
@@ -1125,14 +1142,6 @@ and so on) and not for Unicode characters, so Perl behaved as if you meant
 If you actually want to pack Unicode codepoints, use the C<"U"> format
 instead.
 
-=item Cleanup skipped %d active threads
-
-(W) When using threaded Perl, the main thread exited while there were
-still other threads running.  This is not a good sign: you should either
-explicitly join the threads, or let the threads detach themselves, or
-somehow be certain that all the non-main threads have finished.  See
-L<threads>.
-
 =item close() on unopened filehandle %s
 
 (W unopened) You tried to close a filehandle that was never opened.
@@ -1160,6 +1169,29 @@ in the regular expression engine; or rewriting the regular expression so
 that it is simpler or backtracks less.  (See L<perlfaq2> for information
 on I<Mastering Regular Expressions>.)
 
+=item cond_broadcast() called on unlocked variable
+
+(W threads) Within a thread-enabled program, you tried to call
+cond_broadcast() on a variable which wasn't locked. The cond_broadcast()
+function  is used to wake up another thread that is waiting in a
+cond_wait(). To ensure that the signal isn't sent before the other thread
+has a chance to enter the wait, it is usual for the signaling thread to
+first wait for a lock on variable. This lock attempt will only succeed
+after the other thread has entered cond_wait() and thus relinquished the
+lock.
+
+
+=item cond_signal() called on unlocked variable
+
+(W threads) Within a thread-enabled program, you tried to call
+cond_signal() on a variable which wasn't locked. The cond_signal()
+function  is used to wake up another thread that is waiting in a
+cond_wait(). To ensure that the signal isn't sent before the other thread
+has a chance to enter the wait, it is usual for the signaling thread to
+first wait for a lock on variable. This lock attempt will only succeed
+after the other thread has entered cond_wait() and thus relinquished the
+lock.
+
 =item connect() on closed socket %s
 
 (W closed) You tried to do a connect on a closed socket.  Did you forget
@@ -1184,7 +1216,7 @@ See L<perlsub/"Constant Functions"> and L<constant>.
 
 =item Constant subroutine %s redefined
 
-(S|W redefine) You redefined a subroutine which had previously been
+(S) You redefined a subroutine which had previously been
 eligible for inlining.  See L<perlsub/"Constant Functions"> for
 commentary and workarounds.
 
@@ -3740,7 +3772,7 @@ discovered.  See L<perlre>.
 
 (F) The second argument of 3-argument open() is not among the list
 of valid modes: C<< < >>, C<< > >>, C<<< >> >>>, C<< +< >>,
-C<< +> >>, C<<< +>> >>>, C<-|>, C<|->.
+C<< +> >>, C<<< +>> >>>, C<-|>, C<|->, C<< <& >>, C<< >& >>.
 
 =item Unknown process %x sent message to prime_env_iter: %s