Ignore:
Timestamp:
Oct 4, 2018, 11:50:21 PM (6 years ago)
Author:
alain
Message:

Complete restructuration of kernel locks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/syscalls/sys_kill.c

    r506 r566  
    4747    cxy_t       parent_cxy;        // parent process cluster
    4848    process_t * parent_ptr;        // local pointer on parent process
    49     xptr_t      children_lock_xp;  // extended pointer on children lock in parent
    5049    thread_t  * parent_main_ptr;   // local pointer on parent main thread
    5150    xptr_t      parent_main_xp;    // extended pointer on parent main thread
     
    108107
    109108    // get parent process descriptor pointers
    110     parent_xp  = (xptr_t)hal_remote_lwd( XPTR( owner_cxy , &owner_ptr->parent_xp ) );
     109    parent_xp  = (xptr_t)hal_remote_l64( XPTR( owner_cxy , &owner_ptr->parent_xp ) );
    111110    parent_cxy = GET_CXY( parent_xp );
    112111    parent_ptr = GET_PTR( parent_xp );
     
    118117#endif
    119118
    120     // get extended pointer on lock protecting children list in parent process
    121     children_lock_xp = XPTR( parent_cxy , &parent_ptr->children_lock );
    122 
    123119    // get pointers on the parent process main thread
    124120    parent_main_ptr = hal_remote_lpt( XPTR( parent_cxy , &parent_ptr->th_tbl[0] ) );
     
    149145                                  PROCESS_TERM_STOP );
    150146
    151             // take the children lock and unblock the parent process main thread
    152             remote_spinlock_lock( children_lock_xp );
     147            // unblock the parent process main thread
    153148            thread_unblock( parent_main_xp , THREAD_BLOCKED_WAIT );
    154             remote_spinlock_unlock( children_lock_xp );
    155149
    156150            retval = 0;
     
    188182                                  PROCESS_TERM_KILL );
    189183
    190             // take the children lock and unblock the parent process main thread
    191             remote_spinlock_lock( children_lock_xp );
     184            // unblock the parent process main thread
    192185            thread_unblock( parent_main_xp , THREAD_BLOCKED_WAIT );
    193             remote_spinlock_unlock( children_lock_xp );
    194186
    195187            retval = 0;
Note: See TracChangeset for help on using the changeset viewer.