diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /upstream/mageia-cauldron/man3pm/Test2::Util.3pm | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/mageia-cauldron/man3pm/Test2::Util.3pm')
-rw-r--r-- | upstream/mageia-cauldron/man3pm/Test2::Util.3pm | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3pm/Test2::Util.3pm b/upstream/mageia-cauldron/man3pm/Test2::Util.3pm new file mode 100644 index 00000000..3f4c3da7 --- /dev/null +++ b/upstream/mageia-cauldron/man3pm/Test2::Util.3pm @@ -0,0 +1,200 @@ +.\" -*- mode: troff; coding: utf-8 -*- +.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. +.ie n \{\ +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "Test2::Util 3pm" +.TH Test2::Util 3pm 2023-11-28 "perl v5.38.2" "Perl Programmers Reference Guide" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH NAME +Test2::Util \- Tools used by Test2 and friends. +.SH DESCRIPTION +.IX Header "DESCRIPTION" +Collection of tools used by Test2 and friends. +.SH EXPORTS +.IX Header "EXPORTS" +All exports are optional. You must specify subs to import. +.ie n .IP "($success, $error) = try { ... }" 4 +.el .IP "($success, \f(CW$error\fR) = try { ... }" 4 +.IX Item "($success, $error) = try { ... }" +Eval the codeblock, return success or failure, and the error message. This code +protects $@ and $!, they will be restored by the end of the run. This code also +temporarily blocks \f(CW$SIG\fR{DIE} handlers. +.IP "protect { ... }" 4 +.IX Item "protect { ... }" +Similar to try, except that it does not catch exceptions. The idea here is to +protect $@ and $! from changes. $@ and $! will be restored to whatever they +were before the run so long as it is successful. If the run fails $! will still +be restored, but $@ will contain the exception being thrown. +.IP CAN_FORK 4 +.IX Item "CAN_FORK" +True if this system is capable of true or pseudo-fork. +.IP CAN_REALLY_FORK 4 +.IX Item "CAN_REALLY_FORK" +True if the system can really fork. This will be false for systems where fork +is emulated. +.IP CAN_THREAD 4 +.IX Item "CAN_THREAD" +True if this system is capable of using threads. +.IP USE_THREADS 4 +.IX Item "USE_THREADS" +Returns true if threads are enabled, false if they are not. +.IP get_tid 4 +.IX Item "get_tid" +This will return the id of the current thread when threads are enabled, +otherwise it returns 0. +.ie n .IP "my $file = pkg_to_file($package)" 4 +.el .IP "my \f(CW$file\fR = pkg_to_file($package)" 4 +.IX Item "my $file = pkg_to_file($package)" +Convert a package name to a filename. +.ie n .IP "$string = \fBipc_separator()\fR" 4 +.el .IP "\f(CW$string\fR = \fBipc_separator()\fR" 4 +.IX Item "$string = ipc_separator()" +Get the IPC separator. Currently this is always the string \f(CW\*(Aq~\*(Aq\fR. +.ie n .IP "$string = \fBgen_uid()\fR" 4 +.el .IP "\f(CW$string\fR = \fBgen_uid()\fR" 4 +.IX Item "$string = gen_uid()" +Generate a unique id (NOT A UUID). This will typically be the process id, the +thread id, the time, and an incrementing integer all joined with the +\&\f(CWipc_separator()\fR. +.Sp +These ID's are unique enough for most purposes. For identical ids to be +generated you must have 2 processes with the same PID generate IDs at the same +time with the same current state of the incrementing integer. This is a +perfectly reasonable thing to expect to happen across multiple machines, but is +quite unlikely to happen on one machine. +.Sp +This can fail to be unique if a process generates an id, calls exec, and does +it again after the exec and it all happens in less than a second. It can also +happen if the systems process id's cycle in less than a second allowing 2 +different programs that use this generator to run with the same PID in less +than a second. Both these cases are sufficiently unlikely. If you need +universally unique ids, or ids that are unique in these conditions, look at +Data::UUID. +.ie n .IP "($ok, $err) = do_rename($old_name, $new_name)" 4 +.el .IP "($ok, \f(CW$err\fR) = do_rename($old_name, \f(CW$new_name\fR)" 4 +.IX Item "($ok, $err) = do_rename($old_name, $new_name)" +Rename a file, this wraps \f(CWrename()\fR in a way that makes it more reliable +cross-platform when trying to rename files you recently altered. +.ie n .IP "($ok, $err) = do_unlink($filename)" 4 +.el .IP "($ok, \f(CW$err\fR) = do_unlink($filename)" 4 +.IX Item "($ok, $err) = do_unlink($filename)" +Unlink a file, this wraps \f(CWunlink()\fR in a way that makes it more reliable +cross-platform when trying to unlink files you recently altered. +.ie n .IP "($ok, $err) = try_sig_mask { ... }" 4 +.el .IP "($ok, \f(CW$err\fR) = try_sig_mask { ... }" 4 +.IX Item "($ok, $err) = try_sig_mask { ... }" +Complete an action with several signals masked, they will be unmasked at the +end allowing any signals that were intercepted to get handled. +.Sp +This is primarily used when you need to make several actions atomic (against +some signals anyway). +.Sp +Signals that are intercepted: +.RS 4 +.IP SIGINT 4 +.IX Item "SIGINT" +.PD 0 +.IP SIGALRM 4 +.IX Item "SIGALRM" +.IP SIGHUP 4 +.IX Item "SIGHUP" +.IP SIGTERM 4 +.IX Item "SIGTERM" +.IP SIGUSR1 4 +.IX Item "SIGUSR1" +.IP SIGUSR2 4 +.IX Item "SIGUSR2" +.RE +.RS 4 +.RE +.PD +.SH "NOTES && CAVEATS" +.IX Header "NOTES && CAVEATS" +.IP 5.10.0 4 +.IX Item "5.10.0" +Perl 5.10.0 has a bug when compiled with newer gcc versions. This bug causes a +segfault whenever a new thread is launched. Test2 will attempt to detect +this, and note that the system is not capable of forking when it is detected. +.IP Devel::Cover 4 +.IX Item "Devel::Cover" +Devel::Cover does not support threads. CAN_THREAD will return false if +Devel::Cover is loaded before the check is first run. +.SH SOURCE +.IX Header "SOURCE" +The source code repository for Test2 can be found at +\&\fIhttp://github.com/Test\-More/test\-more/\fR. +.SH MAINTAINERS +.IX Header "MAINTAINERS" +.IP "Chad Granum <exodist@cpan.org>" 4 +.IX Item "Chad Granum <exodist@cpan.org>" +.SH AUTHORS +.IX Header "AUTHORS" +.PD 0 +.IP "Chad Granum <exodist@cpan.org>" 4 +.IX Item "Chad Granum <exodist@cpan.org>" +.IP "Kent Fredric <kentnl@cpan.org>" 4 +.IX Item "Kent Fredric <kentnl@cpan.org>" +.PD +.SH COPYRIGHT +.IX Header "COPYRIGHT" +Copyright 2020 Chad Granum <exodist@cpan.org>. +.PP +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. +.PP +See \fIhttp://dev.perl.org/licenses/\fR |