Skip to content

Update Thread.pm #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Update Thread.pm #3

wants to merge 1 commit into from

Conversation

BenGoldberg1
Copy link

Replaced recommendation to use 'threads', with a statement that the documentation
for the new thread model is in 'threads'.

Since threads.pm is now discouraged, recommending that one switch from Thread.pm to threads.pm is silly.

Replaced recommendation to use 'threads', with a statement that the documentation
for the new thread model is in 'threads'.

Since threads.pm is now discouraged, recommending that one switch from Thread.pm to threads.pm is silly.
@seveas
Copy link
Contributor

seveas commented Jun 10, 2014

Hi Ben,

Patches for perl should be sent using perlbug - pull requests are not used.

@rjbs rjbs closed this Feb 26, 2015
p5p pushed a commit that referenced this pull request Feb 17, 2016
This has large memory savings, test prog,
perl -MTest::More -e"system 'pause'"
before 2196KB Private Bytes Win 7 32 bit to after 2092KB.

-On a CHEK the refcount is a U32 for memory savings on 64 bit CPUs while
 SHEKs are Size_t for refcount because of HE struct, on 32 bit Size_t and
 U32 happen to be the same thing, if there is future integration the
 refcount members will have to be the same type, then duping a SHEK or
 a CHEK is the same code, except that HVhek_COMPILING controls whether to
 aquire OP_REFCNT_LOCK before touching the ref count, in the future with
 atomic operations, the refcount can be manipulated with atomic operations
 regardless if it is a SHEK or CHEK since OP_REFCNT_LOCK lines were removed
-TODO figure out how to do static const CHEKs, hash member must be 0
 since its process specific randomized (rurban's B stores HEKs in RW static
 memory and fixes up the hash #s at runtime), add test and branch
 so that refcount isn't read and written or passed to PerlMemShared_free
 if static flag is on inidicating static const CHEK
-TODO Perl_newGP uses CHEKs not CopFILE, no memcpy and add _< that way
-TODO optimize the former alloca to smallbuf or Safefree or savestack
 newx free
p5p pushed a commit that referenced this pull request Feb 17, 2016
This has large memory savings, test prog,
perl -MTest::More -e"system 'pause'"
before 2196KB Private Bytes Win 7 32 bit to after 2092KB.

-On a CHEK the refcount is a U32 for memory savings on 64 bit CPUs while
 SHEKs are Size_t for refcount because of HE struct, on 32 bit Size_t and
 U32 happen to be the same thing, if there is future integration the
 refcount members will have to be the same type, then duping a SHEK or
 a CHEK is the same code, except that HVhek_COMPILING controls whether to
 aquire OP_REFCNT_LOCK before touching the ref count, in the future with
 atomic operations, the refcount can be manipulated with atomic operations
 regardless if it is a SHEK or CHEK since OP_REFCNT_LOCK lines were removed
-TODO figure out how to do static const CHEKs, hash member must be 0
 since its process specific randomized (rurban's B stores HEKs in RW static
 memory and fixes up the hash #s at runtime), add test and branch
 so that refcount isn't read and written or passed to PerlMemShared_free
 if static flag is on inidicating static const CHEK
-TODO Perl_newGP uses CHEKs not CopFILE, no memcpy and add _< that way
-TODO optimize the former alloca to smallbuf or Safefree or savestack
 newx free
p5p pushed a commit that referenced this pull request Feb 14, 2017
At this maximal level of debugging output, it displays the top 3 state
stack entries each time it pushes, but with no obvious indication that
a push is occurring. This commit changes this output:

                             |   1|  Setting an EVAL scope, savestack=9,
                             |   2|   #4   WHILEM_A_max
                             |   2|   #3   WHILEM_A_max
                             |   2|   #2   CURLYX_end yes
   0 <abcdef> <g>            |   2|   4:POSIXD[\w](5)

to be this (which includes the word "push" and extra indentation for the
stack dump):

                             |   1|  Setting an EVAL scope, savestack=9,
                             |   2|   push #4   WHILEM_A_max
                             |   2|        #3   WHILEM_A_max
                             |   2|        #2   CURLYX_end yes
   0 <abcdef> <g>            |   2|   4:POSIXD[\w](5)

Also, replace curd (current depth) var with a positive integer offset
(i) var, to avoid signed/unsigned mixing problems.
atoomic added a commit that referenced this pull request Jun 25, 2020
Silence some test warnings
demerphq added a commit that referenced this pull request Sep 9, 2022
demerphq added a commit that referenced this pull request Sep 9, 2022
demerphq added a commit that referenced this pull request Sep 12, 2022
demerphq added a commit that referenced this pull request Oct 25, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Dec 31, 2022
demerphq added a commit that referenced this pull request Feb 8, 2023
demerphq added a commit that referenced this pull request Feb 19, 2023
demerphq added a commit that referenced this pull request Feb 20, 2023
mauke added a commit that referenced this pull request Aug 26, 2024
1.41      2024-08-25 22:32:19Z
  - fix leaks in @thread_object_registry (RT#64025, tusooa, #1 and Lukas Mai, #2)
  - fix incompatibility with Scalar::Util 1.65 and remove old refaddr fallback
    (Lukas Mai, #3)
rawleyfowler pushed a commit to rawleyfowler/perl5 that referenced this pull request Sep 2, 2024
1.41      2024-08-25 22:32:19Z
  - fix leaks in @thread_object_registry (RT#64025, tusooa, Perl#1 and Lukas Mai, Perl#2)
  - fix incompatibility with Scalar::Util 1.65 and remove old refaddr fallback
    (Lukas Mai, Perl#3)
bulk88 added a commit to bulk88/perl5 that referenced this pull request Oct 23, 2024
Add builtin::getcwd

Perl#3 gcc syntax fixes

-win32_get_childdir() skip the strlen() because GetCurrentDirectoryA()
 gives it to us, handle 32KB paths if encountered.
 It is an infinite retry loop since its been reported, in multithreading,
 GCD()/CWD can change and get longer on our OS thread's between
 overflow Perl#1 and correct-size attempt Perl#2 because CWD val is a race cond.
 So all overflow conditions must trigger realloc. If the whole C stack
 is used up with alloca() and infinite retry. A SEGV is good.
 Win API/UNICODE_STRING struct is hard coded to USHORT/SHORT. If
 GetCurrentDirectoryA() returns above 65KB a SEGV is good. If
 GetCurrentDirectoryA()'s impl is doing {return buflen+1;} which is an API
 violation, OS is damaged, a SEGV is good. The race retry will never
 realistically trigger more than 1x ever, 2x rounds through retry loop
 might happen after a few centuries semi-guess.

-CPerlHost::GetChildDir(void) is TODO now that
 m_pvDir->GetCurrentDirectoryA/W have correct retvals.

-perllib.c silence warnings, return debug code accidentally removed in

Merge WinCE and Win32 directories -- Initial patch
7bd379e 4/27/2006 7:30:00 PM
iabyn added a commit that referenced this pull request Apr 24, 2025
This is #3 of a small series of commits to refactor the INPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    INPUT_handler()
    INPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request Apr 24, 2025
This is #3 of a small series of commits to refactor the OUTPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    OUTPUT_handler()
    OUTPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants