From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

1;
=head1 Name
SPVM::Sync::Mutex - Mutex
=head1 Description
The Sync::Mutex class in L<SPVM> has methods to manipulate mutex.
=head1 Usage
my $mutex = Sync::Mutex->new;
$mutex->lock;
$mutex->unlock;
=head1 Class Methods
C<static method new : L<Sync::Mutex|SPVM::Sync::Mutex> ();>
Creates a new L<Sync::Mutex|SPVM::Sync::Mutex> object, initializes it by calling the L<new_instance|SPVM::Document::NativeAPI::Mutex/"new_instance"> mutex native API, and returns it.
=head1 Instance Methods
=head2 DESTROY
C<method DESTROY : void ();>
Destroys this instance by calling the L<free_instance|SPVM::Document::NativeAPI::Mutex/"free_instance"> mutex native API
=head2 lock
C<method lock : void ();>
Locks this mutex by calling the L<lock|SPVM::Document::NativeAPI::Mutex/"lock"> mutex native API.
=head2 unlock
C<method unlock : void ();>
UnLocks this mutex by calling the L<unlock|SPVM::Document::NativeAPI::Mutex/"unlock"> mutex native API.
=head2 reader_lock
C<method reader_lock : void ();>
Locks this mutex for reading by calling the L<reader_lock|SPVM::Document::NativeAPI::Mutex/"reader_lock"> mutex native API.
=head2 reader_unlock
C<method reader_unlock : void ();>
UnLocks this mutex locked by L</"reader_lock"> method by calling the L<reader_unlock|SPVM::Document::NativeAPI::Mutex/"reader_unlock"> mutex native API.
=head1 Copyright & License
Copyright (c) 2023 Yuki Kimoto
MIT License