Ignore:
Timestamp:
May 22, 2018, 4:39:48 PM (5 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, with_gc
Children:
13073be, 2c88368
Parents:
639991a
Message:

Moved thread list to cluster, all concurrency object should be accessible through gdb

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/concurrency/kernel.c

    r639991a ra1a17a7  
    4949thread_desc * mainThread;
    5050
    51 struct { __dllist_t(thread_desc) list; __spinlock_t lock; } global_threads ;
    5251struct { __dllist_t(cluster    ) list; __spinlock_t lock; } global_clusters;
    5352
     
    118117        node.next = NULL;
    119118        node.prev = NULL;
    120         doregister(this);
     119        doregister(curr_cluster, this);
    121120
    122121        monitors{ &self_mon_p, 1, (fptr_t)0 };
     
    167166        procs{ __get };
    168167        idles{ __get };
     168        threads{ __get };
    169169
    170170        doregister(this);
     
    518518        __cfaabi_dbg_print_safe("Kernel : Starting\n");
    519519
    520         global_threads. list{ __get };
    521         global_threads. lock{};
    522520        global_clusters.list{ __get };
    523521        global_clusters.lock{};
     
    619617        ^(mainThread){};
    620618
     619        ^(global_clusters.list){};
     620        ^(global_clusters.lock){};
     621
    621622        __cfaabi_dbg_print_safe("Kernel : Shutdown complete\n");
    622623}
     
    756757//-----------------------------------------------------------------------------
    757758// Global Queues
    758 void doregister( thread_desc & thrd ) {
    759         lock      ( global_threads.lock __cfaabi_dbg_ctx2);
    760         push_front( global_threads.list, thrd );
    761         unlock    ( global_threads.lock );
    762 }
    763 
    764 void unregister( thread_desc & thrd ) {
    765         lock  ( global_threads.lock __cfaabi_dbg_ctx2);
    766         remove( global_threads.list, thrd );
    767         unlock( global_threads.lock );
    768 }
    769 
    770759void doregister( cluster     & cltr ) {
    771760        lock      ( global_clusters.lock __cfaabi_dbg_ctx2);
     
    780769}
    781770
     771void doregister( cluster * cltr, thread_desc & thrd ) {
     772        lock      (cltr->thread_list_lock __cfaabi_dbg_ctx2);
     773        push_front(cltr->threads, thrd);
     774        unlock    (cltr->thread_list_lock);
     775}
     776
     777void unregister( cluster * cltr, thread_desc & thrd ) {
     778        lock  (cltr->thread_list_lock __cfaabi_dbg_ctx2);
     779        remove(cltr->threads, thrd );
     780        unlock(cltr->thread_list_lock);
     781}
    782782
    783783void doregister( cluster * cltr, processor * proc ) {
Note: See TracChangeset for help on using the changeset viewer.