public void Free(PspPointer DataPointer)
{
if (!UsedBlocks.Contains(DataPointer))
{
throw (new SceKernelException(SceKernelErrors.ERROR_KERNEL_ILLEGAL_MEMBLOCK));
}
UsedBlocks.Remove(DataPointer);
FreeBlocks.Add(DataPointer);
foreach (var WaitItem in WaitItemList.ToArray())
{
//Console.Error.WriteLine("Free!");
WaitItemList.Remove(WaitItem);
WaitItem.WakeUp();
ThreadManForUser.ThreadManager.Current.CpuThreadState.Yield();
break;
}
}