Doc tweaks.
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index f22aa80..f746220 100644 (file)
@@ -44,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
@@ -862,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.
@@ -1124,13 +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 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.
@@ -1158,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
@@ -1182,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.
 
@@ -3738,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