Posted By: sinuhet (%s/builtin/vi/) on 'CZscripts' Title: Re: jeste k signalum v perlu Date: Mon Mar 15 16:41:43 1999 > > printf("x0n"); > $SIG{'HUP'} = sub { $x = 1; }; > printf("x1n"); > eval { > printf("x2n"); > local $SIG{'HUP'} = ¨ > printf("x3n"); > die if ($x); > select(undef, undef, undef, undef); # jenom priklad > }; > > strace vypada asi takhle: > write(1, "x0n", 3) = 3 > sigaction(SIGHUP, {0x807c964, [], > SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffa78}, {SIG_DFL}) = 0 > write(1, "x1n", 3) = 3 > write(1, "x2n", 3) = 3 > sigaction(SIGHUP, {SIG_DFL}, {0x807c964, [], > SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffa18}) = 0 > sigaction(SIGHUP, {0x807c964, [], 0}, {SIG_DFL}) = 0 > write(1, "x3n", 3) = 3 > select(0, NULL, NULL, NULL, NULL) = ? ERESTARTNOHAND (To be restarted) > > Ten SIG_DFL je featura nebo bug? V pripade, ze featura, da se v perlu > udelat to, co mam na mysli, nejak bezpecne? ten SIG_DFL je tam dle mne nezbytny: eval blok se kompiluje za behu, takze perl se musi pripravit na nejhorsi (kdo vi jak muze skoncit kompilace, ze ?) 100% neprustrelne to tedy neni, neco lepsiho (a napsaneho v perlu) me ale zatim nenapada :-) > Krysa honza