if(Queue->Head)
{
void *ret = Queue->Head;
- Queue->Head = *(void**)( (char*)ret + Queue->NextOffset );
+ Queue->Head = *( (void**)ret + Queue->NextOffset/sizeof(void*) );
if(Queue->Tail == ret)
Queue->Tail = NULL;
SHORTREL(&Queue->Protector);
SHORTLOCK(&Queue->Protector);
if( Queue->Tail )
- *(void**)( (char*)Queue->Tail + Queue->NextOffset ) = Ptr;
+ *( (void**)Queue->Tail + Queue->NextOffset/sizeof(void*) ) = Ptr;
else
Queue->Head = Ptr;
Queue->Tail = Ptr;
if( Queue->Sleeper )
{
- SHORTLOCK( &glThreadListLock );
if( Queue->Sleeper->Status != THREAD_STAT_ACTIVE )
Threads_AddActive(Queue->Sleeper);
- SHORTREL( &glThreadListLock );
Queue->Sleeper = NULL;
}
SHORTREL(&Queue->Protector);