Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/working/exception/impl/exception.c

    r35ba584c rc529a24  
    4444        __throw_terminate(except);
    4545        // TODO: Default handler for resumption.
     46}
     47
     48/* QUESTION: Could interupts interact with exception handling?
     49Ex. could an context switch stop execution, and we get an exception when we
     50come back? Is so resumption has to go:
     51+ create node (init next and handler)
     52+ prepare cleanup (add a cleanup hook with the ..._cleaup function)
     53  also the cleanup has to be the next node, not just a pop from the list.
     54+ push node on the list (change the existing node)
     55Which if an exception can come from anywhere, might just be required to ensure
     56the list is valid.
     57
     58void __try_resume_setup(struct __try_resume_node * node,
     59                        bool (*handler)(exception except) {
     60        node->next = shared_stack.top_resume;
     61        node->try_to_handle = handler;
     62        shared_stack.top_resume = node;
     63}*/
     64
     65// We have a single cleanup function
     66void __try_resume_cleanup(struct __try_resume_node * node) {
     67        shared_stack.top_resume = node->next;
    4668}
    4769
Note: See TracChangeset for help on using the changeset viewer.