global:set_lock の Nodes に [] を指定するのは間違い
Sets a lock on the specified nodes (or on all nodes if none are specified) on ResourceId for LockRequesterId.
と書いてあるので set_lock の Nodes に [] を指定したら常に true が返ってきて困った。
global モジュールのコードを読んだが
set_lock({_ResourceId, _LockRequesterId}, [], _Retries, _Times) -> true;
となってた。
全てのノードでロックしたいときは [node() | nodes()] を指定するのが正しいようだ。
ちなみに retry は時間にしてどれくらいかかるか?は global.erl の random_sleep を見れば分かる。
250 msec 待ち、それでもだめなら 8 sec を上限に倍の時間待つ。