EventFramework library allows the creation of an event-driven infrastructure in which small "threads" can handle events in a multithreaded execution context. The EventFramework can be configured to act as a cooperative or a fully-preemptive kernel with fixed-priority scheduling. Furthermore, this kernel matches run-to-completion semantics, and hence a single-stack configuration is enough to keep running this multithreaded execution environment. As running threads shares global stack, a huge quantity of RAM is saved in contrast with traditional RTOSes.

Dependents:   sensors_KL46Z_xmn

Files at this revision

API Documentation at this revision

Comitter:
raulMrello
Date:
Wed Oct 03 21:02:16 2012 +0000
Parent:
0:9d09acc8f9d9
Commit message:
Nesting correction on RestoreContext interface.; Erase invalid comment-block

Changed in this revision

EventFramework.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 9d09acc8f9d9 -r ec12f2e32faf EventFramework.cpp
--- a/EventFramework.cpp	Mon Oct 01 10:38:45 2012 +0000
+++ b/EventFramework.cpp	Wed Oct 03 21:02:16 2012 +0000
@@ -155,6 +155,7 @@
 void EventFramework::RestoreContext(void){
     cbLock();
     if(nesting > 1){
+        nesting--;
         cbUnlock();
         return;
     }
@@ -215,23 +216,6 @@
         currPrio = curr;
         cbUnlock();
     }
-//    // extract most priority event
-//    Node* firstNode = queue->GetFirstNode();
-//    this->event = (Event*)firstNode->GetData();
-//    queue->Remove(firstNode);
-//    // if no more events, then free queue
-//    if(!queue->GetFirstNode()){
-//        delete queue;
-//        queue = NULL;
-//    }
-//    // get event
-//    Node* nodeHnd = this->event->GetBase()->GetList()->GetFirstNode();
-//    while(nodeHnd){
-//        EventHandler* hnd = (EventHandler*)nodeHnd->GetData();
-//        hnd->Execute();
-//        nodeHnd = nodeHnd->GetNext();
-//    }
-
 }