diff options
author | Andy Broad <andy@broad.ology.org.uk> | 2015-09-13 14:37:43 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2015-09-16 07:44:29 -0400 |
commit | 738ab09f5846887e462080d6443fb8d1e751f247 (patch) | |
tree | 28815d963b6369d436789f18cf4551d662b3e171 /proto.h | |
parent | dee43f802e849f37f65552e91b5dda77197dc05b (diff) | |
download | perl-738ab09f5846887e462080d6443fb8d1e751f247.tar.gz |
amigaos4: move the amigaos exec code under amigaos4
Largely reimplements 839a9f02, 54fa14d7, e8432c63, 40262ff4.
The upside is that now doio.c and pp_sys.c have much less AmigaOS
specific ifdefs. As a downside, the exec code is now forked (pun
only partially accidental.)
The earlier story regarding fork+exec, that the AmigaOS creating
thread doesn't terminate but instead continues running is both true
and false. The more detailed story is that the user-observable
behaviour is as with POSIX/UNIX. The thread that created the new
"task" (to use the AmigaOS terms) does hang around -- but all it
does is to wait for the new task to terminate, and more importantly,
it holds on to the resources like filehandles. If the task were to
immediately terminate, the resources would be reclaimed by the kernel.
Diffstat (limited to 'proto.h')
-rw-r--r-- | proto.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -684,10 +684,10 @@ PERL_CALLCONV_NO_RET void Perl_die_unwind(pTHX_ SV* msv) #define PERL_ARGS_ASSERT_DIE_UNWIND \ assert(msv) -/* PERL_CALLCONV DO_EXEC_TYPE Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp); */ +/* PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp); */ #define PERL_ARGS_ASSERT_DO_AEXEC \ assert(mark); assert(sp) -PERL_CALLCONV DO_EXEC_TYPE Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int do_report); +PERL_CALLCONV bool Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int do_report); #define PERL_ARGS_ASSERT_DO_AEXEC5 \ assert(mark); assert(sp) PERL_CALLCONV int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode); @@ -3588,7 +3588,7 @@ PERL_CALLCONV Signal_t Perl_sighandler(int sig); PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv); #endif #if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)) -PERL_CALLCONV DO_EXEC_TYPE Perl_do_exec(pTHX_ const char* cmd); +PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd); #define PERL_ARGS_ASSERT_DO_EXEC \ assert(cmd) #endif @@ -3747,7 +3747,7 @@ STATIC NV S_mulexp10(NV value, I32 exponent); # endif #endif #if !defined(WIN32) -PERL_CALLCONV DO_EXEC_TYPE Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report); +PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report); #define PERL_ARGS_ASSERT_DO_EXEC3 \ assert(incmd) #endif @@ -3954,7 +3954,7 @@ PERL_CALLCONV PADOFFSET Perl_op_refcnt_dec(pTHX_ OP *o); PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o); #endif #if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION) -/* PERL_CALLCONV DO_EXEC_TYPE Perl_do_exec(pTHX_ const char* cmd); */ +/* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd); */ #endif #if defined(PERL_DONT_CREATE_GVSV) /* PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv); */ |