Beispiel #1
0
void ThreadC (void *arg)
{
	while (1) {
        nOS_SemTake(&semC, NOS_WAIT_INFINITE);
        nOS_SemGive(&semB);
	}
}
Beispiel #2
0
void nOS_SignalProcess (void)
{
    nOS_StatusReg       sr;
    nOS_Signal          *signal  = NULL;
    nOS_SignalCallback  callback = NULL;
    void                *arg     = NULL;

    nOS_EnterCritical(sr);
    if (nOS_SemTake (&_signalSem,
#if (NOS_CONFIG_SIGNAL_THREAD_ENABLE > 0)
                     NOS_WAIT_INFINITE
#else
                     NOS_NO_WAIT
#endif
                     ) == NOS_OK)
    {
        signal = (nOS_Signal *)nOS_GetHeadOfList(&_signalList);
        if (signal != NULL) {
            if (signal->state & NOS_SIGNAL_RAISED) {
                signal->state = (nOS_SignalState)(signal->state &~ NOS_SIGNAL_RAISED);
                nOS_RemoveFromList(&_signalList, &signal->node);

                callback = signal->callback;
                arg      = signal->arg;
            }
        }
    }
    nOS_LeaveCritical(sr);

    if (callback != NULL) {
        callback(signal, arg);
    }
}
Beispiel #3
0
void ThreadA (void *arg)
{
    while(true) {
        nOS_Print("%s running\n", nOS_ThreadGetName(NULL));
        nOS_SemTake(&semA, NOS_WAIT_INFINITE);
    }
}
Beispiel #4
0
void ThreadA (void *arg)
{
    NOS_UNUSED(arg);

    while (1) {
        nOS_SemTake(&semA, NOS_WAIT_INFINITE);
    }
}
Beispiel #5
0
void ThreadB (void *arg)
{
    NOS_UNUSED(arg);

    while (1) {
        nOS_SemTake(&semB, NOS_WAIT_INFINITE);
        nOS_SemGive(&semA);
    }
}
Beispiel #6
0
void nOS_TimerProcess (void)
{
    if (nOS_SemTake (&_timerSem,
#if (NOS_CONFIG_TIMER_THREAD_ENABLE > 0)
                     NOS_WAIT_INFINITE
#else
                     NOS_NO_WAIT
#endif
                     ) == NOS_OK) {
        nOS_WalkInList(&_timerList, _TickTimer, NULL);
    }
}
Beispiel #7
0
void ThreadA (void *arg)
{
	while (1) {
        nOS_SemTake(&semA, NOS_WAIT_INFINITE);
	}
}