mysql>
mysql> delimiter $$
mysql>
mysql> create procedure myproc()
-> begin
-> declare lock_result int;
-> if get_lock('sp_critical_section_lock',60) then
-> /* this block can only be run by one user at a time*/
-> select 'got lock';
-> /* critical code here */
-> set lock_result=release_lock('sp_critical_section_lock');
-> else
-> select 'failed to acquire lock';
-> /* error handling here */
-> end if;
-> end$$
query ok, 0 rows affected (0.00 sec)
mysql>
mysql> delimiter ;
mysql> call myproc();
+----------+
| got lock |
+----------+
| got lock |
+----------+
1 row in set (0.02 sec)
query ok, 0 rows affected (0.02 sec)
mysql>
mysql> drop procedure myproc;
query ok, 0 rows affected (0.00 sec)
mysql>
mysql>