API ObjectPoolMixin Acquire

Furnishes a widget, or returns it to the .
 widget = pool:Acquire()
 success = pool:Release(widget)
 pool:ReleaseAll()
== Arguments / Returns ==
; widget : - Furnished by Acquire() or returned by Release().
; success : - Returned by Release() as true if returning the widget to the pool, or false otherwise (the widget is not even part of the pool, or was previously returned).
== Details ==
* Acquire() draws a widget from the pool, preferring to reuse a previously-released one but using the pool's creationFunc() if necessary.
** Widgets are reused in reverse order to how they were released (LIFO).
* All three functions apply the pool's resetterFunc() (unless it is nil) to affected widgets during each operation.
* ReleaseAll() returns all widgets to the pool.
== Example ==
-- initialize the pool
local function creationFunc()
	return CreateFrame("Frame")
end
local function resetterFunc(__, frame)
	frame:Hide()
end
local pool = CreateObjectPool(creationFunc, resetterFunc)
-- Request a frame
local frame = pool:Acquire()
frame:Show()
-- Return the frame when it is no longer required
pool:Release(frame)
-- Request a frame again
local frame = pool:Acquire() -- could be a different frame if others were acquired/released in the interim
frame:Show() -- cancels Hide() in resetterFunc
== Patch changes ==
* 
* 
== References ==