Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 74e6688766ff1dd727b85a204da830dc7a6dddf2
      
https://github.com/Perl/perl5/commit/74e6688766ff1dd727b85a204da830dc7a6dddf2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-06-23 (Sun, 23 Jun 2024)

  Changed paths:
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  perl.h: Convert reentrant locks to allow many readers

This is in preparation for future use of these.
The only current mutex that is reentrant is the one for locales.

This simply changes the reentrant locks from using the single reader
locks to using the multiple reader locks.


  Commit: 262c141bfbd4efc8b39138c8bd32bc75d6d68a2d
      
https://github.com/Perl/perl5/commit/262c141bfbd4efc8b39138c8bd32bc75d6d68a2d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-06-23 (Sun, 23 Jun 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Avoid deadlock if request a read lock while holding a write one

In a reentrant mutex, the previous commit added the ability to have
multiple readers.  But if a thread already owns a mutex for writing, and
requests a read lock as well, prior to this commit the thread will be
deadlocked by itself.

Avoid this by testing for the condition and handling separately.

All reentrant mutexes currently have no read lock attempts.  So this
case is entirely theoretical for the moment.


Compare: https://github.com/Perl/perl5/compare/56d5b6ef8208...262c141bfbd4

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to