RosettaCodeData/Task/Singleton/Oz/singleton.oz

20 lines
273 B
Plaintext

declare
local
class Singleton
meth init
skip
end
end
L = {NewLock}
Instance
in
fun {GetInstance}
lock L then
if {IsFree Instance} then
Instance = {New Singleton init}
end
Instance
end
end
end