@@ -3690,8 +3690,8 @@ the destruction of inherited handles cause the corresponding handles in the
3690
3690
parent process to cease working.
3691
3691
3692
3692
Either the parent or the child process, but not both, should set
3693
- C<InactiveDestroy > true on all their shared handles. Alternatively the
3694
- L</AutoInactiveDestroy> can be set in the parent on connect.
3693
+ C<InactiveDestroy > true on all their shared handles. Alternatively, and
3694
+ preferably, the L</AutoInactiveDestroy> can be set in the parent on connect.
3695
3695
3696
3696
To help tracing applications using fork the process id is shown in
3697
3697
the trace log whenever a DBI or handle trace() method is called.
@@ -3704,12 +3704,15 @@ from the DBI's method dispatcher, e.g. >= 9.
3704
3704
Type: boolean, inherited
3705
3705
3706
3706
The L</InactiveDestroy> attribute, described above, needs to be explicitly set
3707
- in the child process after a fork(). This is a problem if the code that performs
3708
- the fork() is not under your control, perhaps in a third-party module.
3709
- Use C<AutoInactiveDestroy > to get around this situation.
3707
+ in the child process after a fork(), on every active database and statement handle.
3708
+ This is a problem if the code that performs the fork() is not under your
3709
+ control, perhaps in a third-party module. Use C<AutoInactiveDestroy > to get
3710
+ around this situation.
3710
3711
3711
3712
If set true, the DESTROY method will check the process id of the handle and, if
3712
3713
different from the current process id, it will set the I<InactiveDestroy > attribute.
3714
+ It is strongly recommended that C<AutoInactiveDestroy > is enabled on all new code
3715
+ (it's only not enabled by default to avoid backwards compatibility problems).
3713
3716
3714
3717
This is the example it's designed to deal with:
3715
3718
0 commit comments