X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/40613a90fecb6a31e56e115354a9132233d08267..3a8a164234708d6849d55a7b08ce31e258925c60:/Porting/Glossary diff --git a/Porting/Glossary b/Porting/Glossary index d514458..bc879f7 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -432,6 +432,14 @@ d_asctime_r (d_asctime_r.U): which indicates to the C program that the asctime_r() routine is available. +d_asinh (d_asinh.U): + This variable conditionally defines the HAS_ASINH symbol, which + indicates to the C program that the asinh() routine is available. + +d_atanh (d_atanh.U): + This variable conditionally defines the HAS_ATANH symbol, which + indicates to the C program that the atanh() routine is available. + d_atolf (atolf.U): This variable conditionally defines the HAS_ATOLF symbol, which indicates to the C program that the atolf() routine is available. @@ -539,6 +547,11 @@ d_castneg (d_castneg.U): This variable conditionally defines CASTNEG, which indicates whether the C compiler can cast negative float to unsigned. +d_cbrt (d_cbrt.U): + This variable conditionally defines the HAS_CBRT symbol, which + indicates to the C program that the cbrt() (cube root) function + is available. + d_charvspr (d_vprintf.U): This variable conditionally defines CHARVSPRINTF if this system has vsprintf returning type (char*). The trend seems to be to @@ -578,6 +591,10 @@ d_const (d_const.U): indicates to the C program that this C compiler knows about the const type. +d_copysign (d_copysign.U): + This variable conditionally defines the HAS_COPYSIGN symbol, which + indicates to the C program that the copysign() routine is available. + d_copysignl (d_copysignl.U): This variable conditionally defines the HAS_COPYSIGNL symbol, which indicates to the C program that the copysignl() routine is available. @@ -761,10 +778,26 @@ d_eofnblk (nblock_io.U): This variable conditionally defines EOF_NONBLOCK if EOF can be seen when reading from a non-blocking I/O source. +d_erf (d_erf.U): + This variable conditionally defines the HAS_ERF symbol, which + indicates to the C program that the erf() routine is available. + +d_erfc (d_erfc.U): + This variable conditionally defines the HAS_ERFC symbol, which + indicates to the C program that the erfc() routine is available. + d_eunice (Guess.U): This variable conditionally defines the symbols EUNICE and VAX, which alerts the C program that it must deal with idiosyncrasies of VMS. +d_exp2 (d_exp2.U): + This variable conditionally defines the HAS_EXP2 symbol, which + indicates to the C program that the exp2() routine is available. + +d_expm1 (d_expm1.U): + This variable conditionally defines the HAS_EXPM1 symbol, which + indicates to the C program that the expm1() routine is available. + d_faststdio (d_faststdio.U): This variable conditionally defines the HAS_FAST_STDIO symbol, which indicates to the C program that the "fast stdio" is available @@ -801,6 +834,10 @@ d_fd_set (d_fd_set.U): This variable contains the eventual value of the HAS_FD_SET symbol, which indicates if your C compiler knows about the fd_set typedef. +d_fdim (d_fdim.U): + This variable conditionally defines the HAS_FDIM symbol, which + indicates to the C program that the fdim() routine is available. + d_fds_bits (d_fd_set.U): This variable contains the eventual value of the HAS_FDS_BITS symbol, which indicates if your fd_set typedef contains the fds_bits member. @@ -808,6 +845,10 @@ d_fds_bits (d_fd_set.U): a half-fast job and neglected to provide the macros to manipulate an fd_set, HAS_FDS_BITS will let us know how to fix the gaffe. +d_fegetround (d_fegetround.U): + This variable conditionally defines HAS_FEGETROUND if fegetround() is + available to get the floating point rounding mode. + d_fgetpos (d_fgetpos.U): This variable conditionally defines HAS_FGETPOS if fgetpos() is available to get the file position indicator. @@ -834,6 +875,18 @@ d_flockproto (d_flockproto.U): a prototype for the flock() function. Otherwise, it is up to the program to supply one. +d_fma (d_fma.U): + This variable conditionally defines the HAS_FMA symbol, which + indicates to the C program that the fma() routine is available. + +d_fmax (d_fmax.U): + This variable conditionally defines the HAS_FMAX symbol, which + indicates to the C program that the fmax() routine is available. + +d_fmin (d_fmin.U): + This variable conditionally defines the HAS_FMIN symbol, which + indicates to the C program that the fmin() routine is available. + d_fork (d_fork.U): This variable conditionally defines the HAS_FORK symbol, which indicates to the C program that the fork() routine is available. @@ -842,14 +895,14 @@ d_fp_class (d_fp_class.U): This variable conditionally defines the HAS_FP_CLASS symbol, which indicates to the C program that the fp_class() routine is available. -d_fp_class_l (d_fp_classl.U): - This variable conditionally defines the HAS_FP_CLASSL symbol, which - indicates to the C program that the fp_classl() routine is available. - -d_fp_classify (d_fp_classify.U): +d_fp_classify (d_fpclassify.U): This variable conditionally defines the HAS_FP_CLASSIFY symbol, which indicates to the C program that the fp_classify() routine is available. +d_fp_classl (d_fp_classl.U): + This variable conditionally defines the HAS_FP_CLASSL symbol, which + indicates to the C program that the fp_classl() routine is available. + d_fpathconf (d_pathconf.U): This variable conditionally defines the HAS_FPATHCONF symbol, which indicates to the C program that the pathconf() routine is available @@ -868,6 +921,10 @@ d_fpclassl (d_fpclassl.U): This variable conditionally defines the HAS_FPCLASSL symbol, which indicates to the C program that the fpclassl() routine is available. +d_fpgetround (d_fpgetround.U): + This variable conditionally defines HAS_FPGETROUND if fpgetround() + is available to get the floating point rounding mode. + d_fpos64_t (d_fpos64_t.U): This symbol will be defined if the C compiler supports fpos64_t. @@ -1262,9 +1319,19 @@ d_htonl (d_htonl.U): This variable conditionally defines HAS_HTONL if htonl() and its friends are available to do network order byte swapping. +d_hypot (d_hypot.U): + This variable conditionally defines HAS_HYPOT if hypot is available + for numerically stable hypotenuse function. + +d_ilogb (d_ilogb.U): + This variable conditionally defines the HAS_ILOGB symbol, which + indicates to the C program that the ilogb() routine is available + for extracting the exponent of double x as a signed integer. + d_ilogbl (d_ilogbl.U): This variable conditionally defines the HAS_ILOGBL symbol, which - indicates to the C program that the ilogbl() routine is available. + indicates to the C program that the ilogbl() routine is available + for extracting the exponent of long double x as a signed integer. If scalbnl is also present we can emulate frexpl. d_inc_version_list (inc_version_list.U): @@ -1341,13 +1408,15 @@ d_isnanl (d_isnanl.U): This variable conditionally defines the HAS_ISNANL symbol, which indicates to the C program that the isnanl() routine is available. -d_j0 (d_j0.U): +d_isnormal (d_isnormal.U): + This variable conditionally defines the HAS_ISNORMAL symbol, which + indicates to the C program that the isnormal() routine is available. +d_j0 (d_j0.U): This variable conditionally defines the HAS_J0 symbol, which indicates to the C program that the j0() routine is available. -d_j0l (d_j0l.U): - +d_j0l (d_j0.U): This variable conditionally defines the HAS_J0L symbol, which indicates to the C program that the j0l() routine is available. @@ -1356,6 +1425,11 @@ d_killpg (d_killpg.U): indicates to the C program that the killpg() routine is available to kill process groups. +d_lc_monetary_2008 (d_lc_monetary_2008.U): + This variable conditionally defines HAS_LC_MONETARY_2008 if libc + has the international currency locale rules from POSIX + 1003.1-2008. + d_lchown (d_lchown.U): This variable conditionally defines the HAS_LCHOWN symbol, which indicates to the C program that the lchown() routine is available @@ -1370,6 +1444,16 @@ d_ldexpl (d_longdbl.U): This variable conditionally defines the HAS_LDEXPL symbol, which indicates to the C program that the ldexpl() routine is available. +d_lgamma (d_lgamma.U): + This variable conditionally defines the HAS_LGAMMA symbol, which + indicates to the C program that the lgamma() routine is available + for the log gamma function. See also d_tgamma and d_lgamma_r. + +d_lgamma_r (d_lgamma_r.U): + This variable conditionally defines the HAS_LGAMMA_R symbol, which + indicates to the C program that the lgamma_r() routine is available + for the log gamma function, without using the global signgam variable. + d_libm_lib_version (d_libm_lib_version.U): This variable conditionally defines the LIBM_LIB_VERSION symbol, which indicates to the C program that math.h defines _LIB_VERSION @@ -1385,6 +1469,28 @@ d_link (d_link.U): This variable conditionally defines HAS_LINK if link() is available to create hard links. +d_llrint (d_llrint.U): + This variable conditionally defines the HAS_LLRINT symbol, which + indicates to the C program that the llrint() routine is available + to return the long long value closest to (according to the current + rounding mode) to x. + +d_llrintl (d_llrintl.U): + This variable conditionally defines the HAS_LLRINTL symbol, which + indicates to the C program that the llrintl() routine is available + to return the long long value closest to (according to the current + rounding mode) to long double x. + +d_llround (d_llround.U): + This variable conditionally defines the HAS_LLROUND symbol, which + indicates to the C program that the llround() routine is available + to return the long long value nearest to x. + +d_llroundl (d_llroundl.U): + This variable conditionally defines the HAS_LLROUNDL symbol, which + indicates to the C program that the llroundl() routine is available + to return the long long value nearest to long double x. + d_localtime64 (d_timefuncs64.U): This variable conditionally defines the HAS_LOCALTIME64 symbol, which indicates to the C program that the localtime64 () routine is available. @@ -1406,6 +1512,21 @@ d_lockf (d_lockf.U): This variable conditionally defines HAS_LOCKF if lockf() is available to do file locking. +d_log1p (d_log1p.U): + This variable conditionally defines the HAS_LOG1P symbol, which + indicates to the C program that the logp1() routine is available + to compute log(1 + x) for values of x close to zero. + +d_log2 (d_log2.U): + This variable conditionally defines the HAS_LOG2 symbol, which + indicates to the C program that the log2() routine is available + to compute log base two. + +d_logb (d_logb.U): + This variable conditionally defines the HAS_LOGB symbol, which + indicates to the C program that the logb() routine is available + to extract the exponent of x. + d_longdbl (d_longdbl.U): This variable conditionally defines HAS_LONG_DOUBLE if the long double type is supported. @@ -1414,6 +1535,28 @@ d_longlong (d_longlong.U): This variable conditionally defines HAS_LONG_LONG if the long long type is supported. +d_lrint (d_lrint.U): + This variable conditionally defines the HAS_LRINT symbol, which + indicates to the C program that the lrint() routine is available + to return the integral value closest to (according to the current + rounding mode) to x. + +d_lrintl (d_lrintl.U): + This variable conditionally defines the HAS_LRINTL symbol, which + indicates to the C program that the lrintl() routine is available + to return the integral value closest to (according to the current + rounding mode) to long double x. + +d_lround (d_lround.U): + This variable conditionally defines the HAS_LROUND symbol, which + indicates to the C program that the lround() routine is available + to return the integral value nearest to x. + +d_lroundl (d_lroundl.U): + This variable conditionally defines the HAS_LROUNDL symbol, which + indicates to the C program that the lroundl() routine is available + to return the integral value nearest to x of the long double argument. + d_lseekproto (d_lseekproto.U): This variable conditionally defines the HAS_LSEEK_PROTO symbol, which indicates to the C program that the system provides @@ -1517,13 +1660,6 @@ d_modfl (d_modfl.U): This variable conditionally defines the HAS_MODFL symbol, which indicates to the C program that the modfl() routine is available. -d_modfl_pow32_bug (d_modfl.U): - This variable conditionally defines the HAS_MODFL_POW32_BUG symbol, - which indicates that modfl() is broken for long doubles >= pow(2, 32). - For example from 4294967303.150000 one would get 4294967302.000000 - and 1.150000. The bug has been seen in certain versions of glibc, - release 2.2.2 is known to be okay. - d_modflproto (d_modfl.U): This symbol, if defined, indicates that the system provides a prototype for the modfl() function. Otherwise, it is up @@ -1538,31 +1674,6 @@ d_msg (d_msg.U): This variable conditionally defines the HAS_MSG symbol, which indicates that the entire msg*(2) library is present. -d_msg_ctrunc (d_socket.U): - This variable conditionally defines the HAS_MSG_CTRUNC symbol, - which indicates that the MSG_CTRUNC is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - -d_msg_dontroute (d_socket.U): - This variable conditionally defines the HAS_MSG_DONTROUTE symbol, - which indicates that the MSG_DONTROUTE is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - -d_msg_oob (d_socket.U): - This variable conditionally defines the HAS_MSG_OOB symbol, - which indicates that the MSG_OOB is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - -d_msg_peek (d_socket.U): - This variable conditionally defines the HAS_MSG_PEEK symbol, - which indicates that the MSG_PEEK is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - -d_msg_proxy (d_socket.U): - This variable conditionally defines the HAS_MSG_PROXY symbol, - which indicates that the MSG_PROXY is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - d_msgctl (d_msgctl.U): This variable conditionally defines the HAS_MSGCTL symbol, which indicates to the C program that the msgctl() routine is available. @@ -1596,6 +1707,10 @@ d_mymalloc (mallocsrc.U): of the source want to take special action if MYMALLOC is used. This may include different sorts of profiling or error detection. +d_nan (d_nan.U): + This variable conditionally defines HAS_NAN if nan() is + available to generate NaN. + d_ndbm (i_ndbm.U): This variable conditionally defines the HAS_NDBM symbol, which indicates that both the ndbm.h include file and an appropriate ndbm @@ -1613,6 +1728,21 @@ d_ndbm_h_uses_prototypes (i_ndbm.U): undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files. +d_nearbyint (d_nearbyint.U): + This variable conditionally defines HAS_NEARBYINT if nearbyint() + is available to return the integral value closest to (according to + the current rounding mode) to x. + +d_nextafter (d_nextafter.U): + This variable conditionally defines HAS_NEXTAFTER if nextafter() + is available to return the next machine representable double from + x in direction y. + +d_nexttoward (d_nexttoward.U): + This variable conditionally defines HAS_NEXTTOWARD if nexttoward() + is available to return the next machine representable long double from + x in direction y. + d_nice (d_nice.U): This variable conditionally defines the HAS_NICE symbol, which indicates to the C program that the nice() routine is available. @@ -1690,6 +1820,8 @@ d_portable (d_portable.U): d_prctl (d_prctl.U): This variable conditionally defines the HAS_PRCTL symbol, which indicates to the C program that the prctl() routine is available. + Note that there are at least two prctl variants: Linux and Irix. + While they are somewhat similar, they are incompatible. d_prctl_set_name (d_prctl.U): This variable conditionally defines the HAS_PRCTL_SET_NAME symbol, @@ -1828,6 +1960,12 @@ d_random_r (d_random_r.U): which indicates to the C program that the random_r() routine is available. +d_re_comp (d_regcmp.U): + This variable conditionally defines the HAS_RECOMP symbol, which + indicates to the C program that the re_comp() routine is available + for regular patern matching (usally on BSD). If so, it is likely that + re_exec() exists. + d_readdir (d_readdir.U): This variable conditionally defines HAS_READDIR if readdir() is available to read directory entries. @@ -1855,6 +1993,24 @@ d_recvmsg (d_recvmsg.U): This variable conditionally defines the HAS_RECVMSG symbol, which indicates to the C program that the recvmsg() routine is available. +d_regcmp (d_regcmp.U): + This variable conditionally defines the HAS_REGCMP symbol, which + indicates to the C program that the regcmp() routine is available + for regular patern matching (usally on System V). + +d_regcomp (d_regcmp.U): + This variable conditionally defines the HAS_REGCOMP symbol, which + indicates to the C program that the regcomp() routine is available + for regular patern matching (usally on POSIX.2 conforming systems). + +d_remainder (d_remainder.U): + This variable conditionally defines the HAS_REMAINDER symbol, which + indicates to the C program that the remainder() routine is available. + +d_remquo (d_remquo.U): + This variable conditionally defines the HAS_REMQUO symbol, which + indicates to the C program that the remquo() routine is available. + d_rename (d_rename.U): This variable conditionally defines the HAS_RENAME symbol, which indicates to the C program that the rename() routine is available @@ -1864,10 +2020,18 @@ d_rewinddir (d_readdir.U): This variable conditionally defines HAS_REWINDDIR if rewinddir() is available. +d_rint (d_rint.U): + This variable conditionally defines the HAS_RINT symbol, which + indicates to the C program that the rint() routine is available. + d_rmdir (d_rmdir.U): This variable conditionally defines HAS_RMDIR if rmdir() is available to remove directories. +d_round (d_round.U): + This variable conditionally defines the HAS_ROUND symbol, which + indicates to the C program that the round() routine is available. + d_safebcpy (d_safebcpy.U): This variable conditionally defines the HAS_SAFE_BCOPY symbol if the bcopy() routine can do overlapping copies. Normally, you @@ -1889,6 +2053,10 @@ d_sbrkproto (d_sbrkproto.U): a prototype for the sbrk() function. Otherwise, it is up to the program to supply one. +d_scalbn (d_scalbn.U): + This variable conditionally defines the HAS_SCALBN symbol, which + indicates to the C program that the scalbn() routine is available. + d_scalbnl (d_scalbnl.U): This variable conditionally defines the HAS_SCALBNL symbol, which indicates to the C program that the scalbnl() routine is available. @@ -1899,11 +2067,6 @@ d_sched_yield (d_pthread_y.U): symbol if the sched_yield routine is available to yield the execution of the current thread. -d_scm_rights (d_socket.U): - This variable conditionally defines the HAS_SCM_RIGHTS symbol, - which indicates that the SCM_RIGHTS is available. #ifdef is - not enough because it may be an enum, glibc has been known to do this. - d_SCNfldbl (longdblfio.U): This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to scan long doubles. @@ -2221,6 +2384,10 @@ d_sresuproto (d_sresuproto.U): a prototype for the setresuid() function. Otherwise, it is up to the program to supply one. +d_stat (d_stat.U): + This variable conditionally defines HAS_STAT if stat() is + available to get file status. + d_statblks (d_statblks.U): This variable conditionally defines USE_STAT_BLOCKS if this system has a stat structure declaring @@ -2412,6 +2579,11 @@ d_telldirproto (d_telldirproto.U): a prototype for the telldir() function. Otherwise, it is up to the program to supply one. +d_tgamma (d_tgamma.U): + This variable conditionally defines the HAS_TGAMMA symbol, which + indicates to the C program that the tgamma() routine is available + for the gamma function. See also d_lgamma. + d_time (d_time.U): This variable conditionally defines the HAS_TIME symbol, which indicates that the time() routine exists. The time() routine is normally @@ -2439,10 +2611,21 @@ d_tmpnam_r (d_tmpnam_r.U): which indicates to the C program that the tmpnam_r() routine is available. +d_trunc (d_trunc.U): + This variable conditionally defines the HAS_TRUNC symbol, which + indicates to the C program that the trunc() routine is available + to round doubles towards zero. + d_truncate (d_truncate.U): This variable conditionally defines HAS_TRUNCATE if truncate() is available to truncate files. +d_truncl (d_truncl.U): + This variable conditionally defines the HAS_TRUNCL symbol, which + indicates to the C program that the truncl() routine is available + to round long doubles towards zero. If copysignl is also present, + we can emulate modfl. + d_ttyname_r (d_ttyname_r.U): This variable conditionally defines the HAS_TTYNAME_R symbol, which indicates to the C program that the ttyname_r() @@ -2620,6 +2803,33 @@ dlsrc (dlsrc.U): This variable contains the name of the dynamic loading file that will be used with the package. +doubleinfbytes (infnan.U): + This variable contains comma-separated list of hexadecimal bytes + for the double precision infinity. + +doublekind (longdblfio.U): + This variable, if defined, encodes the type of a double: + 1 = IEEE 754 32-bit little endian, + 2 = IEEE 754 32-bit big endian, + 3 = IEEE 754 64-bit little endian, + 4 = IEEE 754 64-bit big endian, + 5 = IEEE 754 128-bit little endian, + 6 = IEEE 754 128-bit big endian, + 7 = IEEE 754 64-bit mixed endian le-be, + 8 = IEEE 754 64-bit mixed endian be-le, + -1 = unknown format. + +doublemantbits (mantbits.U): + This symbol, if defined, tells how many mantissa bits + there are in double precision floating point format. + Note that this is usually DBL_MANT_DIG minus one, since + with the standard IEEE 754 formats DBL_MANT_DIG includes + the implicit bit which doesn't really exist. + +doublenanbytes (infnan.U): + This variable contains comma-separated list of hexadecimal bytes + for the double precision not-a-number. + doublesize (doublesize.U): This variable contains the value of the DOUBLESIZE symbol, which indicates to the C program how many bytes there are in a double. @@ -3116,6 +3326,11 @@ i_fcntl (i_fcntl.U): This variable controls the value of I_FCNTL (which tells the C program to include ). +i_fenv (i_fenv.U): + This variable conditionally defines the I_FENV symbol, which + indicates to the C program that exists and should + be included. + i_float (i_float.U): This variable conditionally defines the I_FLOAT symbol, and indicates whether a C program may include to get symbols like DBL_MAX @@ -3238,6 +3453,10 @@ i_pwd (i_pwd.U): This variable conditionally defines I_PWD, which indicates to the C program that it should include . +i_quadmath (i_quadmath.U): + This variable conditionally defines I_QUADMATH, which indicates + to the C program that it should include . + i_rpcsvcdbm (i_dbm.U): This variable conditionally defines the I_RPCSVC_DBM symbol, which indicates to the C program that exists and should @@ -3835,17 +4054,34 @@ loclibpth (libpth.U): libraries. It is prepended to libpth, and is intended to be easily set from the command line. +longdblinfbytes (infnan.U): + This variable contains comma-separated list of hexadecimal bytes + for the long double precision infinity. + longdblkind (d_longdbl.U): This variable, if defined, encodes the type of a long double: - 0 = double, 1 = IEEE 754 128-bit big little endian, - 2 = IEEE 754 128-bit big big endian, 3 = x86 80-bit little endian, + 0 = double, 1 = IEEE 754 128-bit little endian, + 2 = IEEE 754 128-bit big endian, 3 = x86 80-bit little endian, 4 = x86 80-bit big endian, 5 = double-double 128-bit little endian, 6 = double-double 128-bit big endian, -1 = unknown format. +longdblmantbits (longdblmant.U): + This symbol, if defined, tells how many mantissa bits + there are in long double precision floating point format. + Note that this can be LDBL_MANT_DIG minus one, + since LDBL_MANT_DIG can include the IEEE 754 implicit bit. + The common x86-style 80-bit long double does not have + an implicit bit. + +longdblnanbytes (infnan.U): + This variable contains comma-separated list of hexadecimal bytes + for the long double precision not-a-number. + longdblsize (d_longdbl.U): This variable contains the value of the LONG_DOUBLESIZE symbol, which indicates to the C program how many bytes there are in a long double, - if this system supports long doubles. + if this system supports long doubles. Note that this is + sizeof(long double), which may include unused bytes. longlongsize (d_longlong.U): This variable contains the value of the LONGLONGSIZE symbol, which @@ -4109,8 +4345,13 @@ nvGUformat (perlxvf.U): This variable contains the format string used for printing a Perl NV using %G-ish floating point format. +nvmantbits (mantbits.U): + This variable tells how many bits the mantissa of a Perl NV has, + not including the possible implicit bit. + nvsize (perlxv.U): - This variable is the size of an NV in bytes. + This variable is the size of a Perl NV in bytes. + Note that some floating point formats have unused bytes. nvtype (perlxv.U): This variable contains the C type used for Perl's NV. @@ -5227,6 +5468,11 @@ useposix (Extensions.U): for hints files to indicate that POSIX will not compile on a particular system. +usequadmath (usequadmath.U): + This variable conditionally defines the USE_QUADMATH symbol, + and indicates that the quadmath library __float128 long doubles + should be used when available. + usereentrant (usethreads.U): This variable conditionally defines the USE_REENTRANT_API symbol, which indicates that the thread code may try to use the various