Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/pthread.cfa

    r6b33e89 rc3d0182a  
    99// Author           : Zhenyan Zhu
    1010// Created On       : Sat Aug 6 16:29:18 2022
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Apr 25 07:28:01 2025
    13 // Update Count     : 4
     11// Last Modified By : Kyoung Seo
     12// Last Modified On : Mon Jan 27 20:35:00 2025
     13// Update Count     : 1
    1414//
    1515
     
    4040        bool in_use;
    4141        void (* destructor)( void * );
    42         dlist( pthread_values ) threads;
     42    dlist( pthread_values ) threads;
    4343};
    4444
     
    543543                //      p.in_use = false;
    544544                // }
    545                 for ( pthread_values * p = &remove_first( cfa_pthread_keys[key].threads ); p; p = &remove_first( cfa_pthread_keys[key].threads ) ) {
    546                         p->in_use = false;
    547                 }
     545        pthread_values * p = &try_pop_front( cfa_pthread_keys[key].threads );
     546        for ( ; p; ) {           
     547            p->in_use = false;
     548            p = &try_pop_front( cfa_pthread_keys[key].threads );
     549        }
    548550                unlock(key_lock);
    549551                return 0;
     
    601603        //######################### Parallelism #########################
    602604        void pthread_delete_kernel_threads_() __THROW { // see uMain::~uMain
    603                
    604                 for ( Pthread_kernel_threads * p = &remove_first(cfa_pthreads_kernel_threads); p; p = &remove_first(cfa_pthreads_kernel_threads) ) {
    605                         delete(p);
     605                Pthread_kernel_threads * p = &try_pop_front(cfa_pthreads_kernel_threads);
     606                for ( ; p; ) {
     607            delete(p);
     608                        p = &try_pop_front(cfa_pthreads_kernel_threads);
    606609                } // for
    607610        } // pthread_delete_kernel_threads_
     
    623626                } // for
    624627                for ( ; new_level < cfa_pthreads_no_kernel_threads; cfa_pthreads_no_kernel_threads -= 1 ) { // remove processors ?
    625                         delete(&remove_first(cfa_pthreads_kernel_threads));
     628                        delete(&try_pop_front(cfa_pthreads_kernel_threads));
    626629                } // for
    627630                unlock( concurrency_lock );
Note: See TracChangeset for help on using the changeset viewer.