public void Allocate(PspPointer* DataPointer, uint* Timeout, bool HandleCallbacks)
{
if (!TryAllocate(DataPointer))
{
if (Timeout != null) throw (new NotImplementedException());
var CurrentThread = ThreadManForUser.ThreadManager.Current;
CurrentThread.SetWaitAndPrepareWakeUp(HleThread.WaitType.Semaphore, "_sceKernelAllocateVplCB", this, (WakeUp) =>
{
WaitItemList.Add(new WaitItem()
{
Thread = CurrentThread,
WakeUp = () =>
{
WakeUp();
Allocate(DataPointer, Timeout, HandleCallbacks);
},
});
}, HandleCallbacks: HandleCallbacks);
}
}