Changeset 43a14eb in rtems-libbsd


Ignore:
Timestamp:
May 25, 2016, 11:11:59 AM (4 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
b96abfd647154f10ea8f7fac68e25676636eded5, 26866d2c1f2432b25b5db71995bce2035187c715, freebsd-9.3, 6da0dda3255e2a49365aee6904fe00d4f2ca9d68
Children:
f70f9f5
Parents:
92e9493
Message:

Update due to API changes

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/kern/sys_generic.c

    r92e9493 r43a14eb  
    19211921{
    19221922        Thread_Control *thread;
    1923         Objects_Locations location;
    1924 
    1925         thread = _Thread_Get(task_id, &location);
    1926         switch (location) {
    1927                 case OBJECTS_LOCAL:
    1928                         force_select_timeout(thread);
    1929                         _Objects_Put(&thread->Object);
    1930                         break;
     1923        ISR_lock_Context lock_context;
     1924
     1925        thread = _Thread_Get(task_id, &lock_context);
     1926        if (thread == NULL) {
    19311927#if defined(RTEMS_MULTIPROCESSING)
    1932                 case OBJECTS_REMOTE:
    1933                         _Thread_Dispatch();
     1928                if (_Thread_MP_Is_remote(id)) {
    19341929                        return (RTEMS_ILLEGAL_ON_REMOTE_OBJECT);
    1935 #endif
    1936                 default:
    1937                         return (RTEMS_INVALID_ID);
    1938         }
    1939 
     1930                }
     1931#endif
     1932
     1933                return (RTEMS_INVALID_ID);
     1934        }
     1935
     1936        _ISR_lock_ISR_enable(&lock_context);
     1937        force_select_timeout(thread);
    19401938        return (RTEMS_SUCCESSFUL);
    19411939}
  • rtemsbsd/rtems/rtems-kernel-thread.c

    r92e9493 r43a14eb  
    7979{
    8080        Thread_Control *thread;
    81         Objects_Locations location;
    82 
    83         thread = _Thread_Get(task_id, &location);
    84         switch (location) {
    85                 case OBJECTS_LOCAL:
    86                         _Objects_Put(&thread->Object);
    87                         break;
    88 #if defined(RTEMS_MULTIPROCESSING)
    89                 case OBJECTS_REMOTE:
    90                         _Thread_Dispatch();
    91                         thread = NULL;
    92                         break;
    93 #endif
    94                 default:
    95                         thread = NULL;
    96                         break;
    97         }
    98 
    99         return thread;
     81        ISR_lock_Context lock_context;
     82
     83        thread = _Thread_Get(task_id, &lock_context);
     84        if (thread != NULL) {
     85                _ISR_lock_ISR_enable(&lock_context);
     86        }
     87
     88        return (thread);
    10089}
    10190
Note: See TracChangeset for help on using the changeset viewer.