MySQL get_lock ('test_lock', 0) всегда возвращает 1 - PullRequest
1 голос
/ 17 марта 2020

Насколько я понимаю, get_lock ('test_lock', 0) должен возвращать 1 или успех после первого вызова. Второй вызов должен вернуть 0. После вызова release_lock ('test_lock') он снова вернет 1. Это правильно? Я просто использую MySQL Workbench для запуска команд и получаю обратно 1 каждый раз. Я надеялся использовать этот замок как семафор в своем приложении.

1 Ответ

0 голосов
/ 17 марта 2020

После успешного вызова get_lock сеанс владеет им, поэтому последующие вызовы из того же сеанса также будут успешными (и вернут 1). Если вы запустите get_lock, а затем откроете другой MySQL сеанс Workbench (например, запустив другой экземпляр приложения) и попытаетесь получить такую ​​же блокировку, произойдет сбой (и вернется 0).

...