yieldthread.c
1.06 KB
/**************************************************************************
* *
* Copyright (C) 1994, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
#include "osint.h"
/*
* osYieldThread
*
* Yields the processor by putting the running thread back onto the run queue
* after all other threads of the same priority and invoking the dispatcher.
*/
void
osYieldThread(void)
{
register u32 saveMask;
/* Disable interrupts */
saveMask = __osDisableInt();
__osRunningThread->state = OS_STATE_RUNNABLE;
__osEnqueueAndYield(&__osRunQueue);
/* Restore interrupts */
__osRestoreInt(saveMask);
}