X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlthrtut.pod;h=27ad46e2643f4e83b98d20ef60079069588e7f0a;hb=e13efe3ceea1a416bee536860751edb48e6bfcb3;hp=cafcbb21a63a80f0763509a1967fa79d7f4de012;hpb=b03ad8f690c4dcc613a1ec77d747e2d429945b16;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlthrtut.pod b/pod/perlthrtut.pod index cafcbb2..27ad46e 100644 --- a/pod/perlthrtut.pod +++ b/pod/perlthrtut.pod @@ -542,7 +542,7 @@ techniques such as queues, which remove some of the hard work involved. =head2 Controlling access: lock() The lock() function takes a shared variable and puts a lock on it. -No other thread may lock the variable until the the variable is unlocked +No other thread may lock the variable until the variable is unlocked by the thread holding the lock. Unlocking happens automatically when the locking thread exits the outermost block that contains C function. Using lock() is straightforward: this example has @@ -1016,10 +1016,15 @@ calls, they will be used. Beyond that, Perl is at the mercy of the thread-safety or -unsafety of the calls. Please consult your C library call documentation. -In some platforms the thread-safe interfaces may fail if the result -buffer is too small (for example getgrent() may return quite large -group member lists). Perl will retry growing the result buffer -a few times, but only up to 64k (for safety reasons). +On some platforms the thread-safe library interfaces may fail if the +result buffer is too small (for example the user group databases may +be rather large, and the reentrant interfaces may have to carry around +a full snapshot of those databases). Perl will start with a small +buffer, but keep retrying and growing the result buffer +until the result fits. If this limitless growing sounds bad for +security or memory consumption reasons you can recompile Perl with +PERL_REENTRANT_MAXSIZE defined to the maximum number of bytes you will +allow. =head1 Conclusion