FAQ
1. Change many(most) of the ckvmssts macro calls to ckvmsts_noperl as
these routines can be called with a null context, and that causes
ckvmssts to access violate instead of terminating Perl with the real
failure.

2. Fix pipe_exit_routine. This routine will be called with a null
context from the exit handler. It needs to extract the thread context
from the specific pipe info structure getting run down.

3. Safe_popen can open a pipe with out using a file descriptor in the
case where it waits for the subprocess to complete.

In this case, my_pclose() routine is never called.

This needs a special shortened version of pclose() to be called to do
the cleanup.

-John
wb8tyw@gmail.com
Personal Opinion Only

Search Discussions

  • John Malmberg at Jan 6, 2009 at 2:21 pm

    John Malmberg wrote:
    1. Change many(most) of the ckvmssts macro calls to ckvmsts_noperl as
    these routines can be called with a null context, and that causes
    ckvmssts to access violate instead of terminating Perl with the real
    failure.

    2. Fix pipe_exit_routine. This routine will be called with a null
    context from the exit handler. It needs to extract the thread context
    from the specific pipe info structure getting run down.

    3. Safe_popen can open a pipe with out using a file descriptor in the
    case where it waits for the subprocess to complete.

    In this case, my_pclose() routine is never called.

    This needs a special shortened version of pclose() to be called to do
    the cleanup.
    This patch also fixes a memory leak in trim_unixpath().

    -John
    wb8tyw@gmail.com
    Personal Opinion Only
  • Craig A. Berry at Jan 8, 2009 at 1:54 am

    On Jan 5, 2009, at 11:30 PM, John Malmberg wrote:

    1. Change many(most) of the ckvmssts macro calls to ckvmsts_noperl
    as these routines can be called with a null context, and that causes
    ckvmssts to access violate instead of terminating Perl with the real
    failure.
    @@ -4239,21 +4278,21 @@

    while (!info->out_done) {
    int done;
    - _ckvmssts(sys$setast(0));
    + _ckvmssts_noperl(sys$setast(0));
    done = info->out_done;
    - if (!done) _ckvmssts(sys$clref(pipe_ef));
    + if (!done) _ckvmssts_noperl(sys$clref(pipe_ef));
    _ckvmssts(sys$setast(1));
    You missed this one, but I added it and applied at:

    http://perl5.git.perl.org/perl.git/commitdiff/ebd4d70

    ________________________________________
    Craig A. Berry
    mailto:craigberry@mac.com

    "... getting out of a sonnet is much more
    difficult than getting in."
    Brad Leithauser

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-porters @
categoriesperl
postedJan 6, '09 at 5:31a
activeJan 8, '09 at 1:54a
posts3
users2
websiteperl.org

2 users in discussion

John Malmberg: 2 posts Craig A. Berry: 1 post

People

Translate

site design / logo © 2022 Grokbase