summaryrefslogtreecommitdiff
path: root/dosish.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2021-02-09 12:48:18 -0700
committerKarl Williamson <khw@cpan.org>2022-07-25 15:47:40 -0600
commit0721b9ab151951a37f60b77264f7ad6341fe2b70 (patch)
tree4dc1b4893c804410449d56d33534dbe667ced7ce /dosish.h
parent71ce8c74528f69acac1ccbb56b5cc3d20ddba7dd (diff)
downloadperl-0721b9ab151951a37f60b77264f7ad6341fe2b70.tar.gz
Unixish.h, doshish.h: Reorder terminations; simplify
The IO and memory terminations need to be after other things. Add a comment so that future maintainers won't make the mistakes I did. Also refactor so that amiga os doesn't have a separate list to get out of sync I suspect that the amiga termination should be moved to earlier in the sequence, but absent any evidence; I'm leaving it unchanged. vms destruction was missing a bunch of things and I didn't see any reason to have special handling, so I changed it to just use the standard, presuming the discrepancies were due to changes in the standard not getting propagated to vms. The common definitions are also moved to perl.c which is the only place they are used (including cpan). This makes them available in all circumstances. Otherwise, the #ifdef's for including the relevant header files only include one, so there would be undefined macros.
Diffstat (limited to 'dosish.h')
-rw-r--r--dosish.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/dosish.h b/dosish.h
index c092b4e320..8a1ce98048 100644
--- a/dosish.h
+++ b/dosish.h
@@ -24,12 +24,17 @@
# define BIT_BUCKET "\\dev\\nul" /* "wanna be like, umm, Newlined, or somethin?" */
#endif
+/* Generally add things last-in first-terminated. IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
#ifndef PERL_SYS_TERM_BODY
# define PERL_SYS_TERM_BODY() \
+ ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM; \
HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
- OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
- MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM; \
- ENV_TERM;
+ OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; \
+ PERLIO_TERM; MALLOC_TERM;
#endif
#define dXSUB_SYS dNOOP