Changeset b1c57a8 in mainline for kernel/generic/include/proc


Ignore:
Timestamp:
2014-10-09T15:03:55Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e367939c
Parents:
21799398 (diff), 207e8880 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~adam-hraska+lp/helenos/rcu/.

Only merge from the feature branch and resolve all conflicts.

Location:
kernel/generic/include/proc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/proc/task.h

    r21799398 rb1c57a8  
    4343#include <synch/mutex.h>
    4444#include <synch/futex.h>
     45#include <synch/workqueue.h>
    4546#include <adt/avl.h>
    4647#include <adt/btree.h>
     48#include <adt/cht.h>
    4749#include <adt/list.h>
    4850#include <security/cap.h>
     
    5759#include <mm/as.h>
    5860#include <abi/sysinfo.h>
     61#include <arch.h>
     62
     63#define TASK                 THE->task
     64
    5965
    6066struct thread;
     
    123129        task_arch_t arch;
    124130       
    125         /**
    126          * Serializes access to the B+tree of task's futexes. This mutex is
    127          * independent on the task spinlock.
    128          */
    129         mutex_t futexes_lock;
    130         /** B+tree of futexes referenced by this task. */
    131         btree_t futexes;
     131        struct futex_cache {
     132                /** CHT mapping virtual addresses of futex variables to futex objects.*/
     133                cht_t ht;
     134                /** Serializes access to futex_list.*/
     135                spinlock_t list_lock;
     136                /** List of all futexes accesses by this task. */
     137                list_t list;
     138                work_t destroy_work;
     139        } *futexes;
    132140       
    133141        /** Accumulated accounting. */
  • kernel/generic/include/proc/thread.h

    r21799398 rb1c57a8  
    4141#include <cpu.h>
    4242#include <synch/spinlock.h>
     43#include <synch/rcu_types.h>
    4344#include <adt/avl.h>
    4445#include <mm/slab.h>
     
    4849#include <udebug/udebug.h>
    4950#include <abi/sysinfo.h>
     51#include <arch.h>
     52
     53
     54#define THREAD              THE->thread
    5055
    5156#define THREAD_NAME_BUFLEN  20
     
    180185        /** Thread ID. */
    181186        thread_id_t tid;
     187
     188        /** Work queue this thread belongs to or NULL. Immutable. */
     189        struct work_queue *workq;
     190        /** Links work queue threads. Protected by workq->lock. */
     191        link_t workq_link;
     192        /** True if the worker was blocked and is not running. Use thread->lock. */
     193        bool workq_blocked;
     194        /** True if the worker will block in order to become idle. Use workq->lock. */
     195        bool workq_idling;
     196       
     197        /** RCU thread related data. Protected by its own locks. */
     198        rcu_thread_data_t rcu;
    182199       
    183200        /** Architecture-specific data. */
     
    217234extern void thread_ready(thread_t *);
    218235extern void thread_exit(void) __attribute__((noreturn));
     236extern void thread_interrupt(thread_t *);
     237extern bool thread_interrupted(thread_t *);
    219238
    220239#ifndef thread_create_arch
Note: See TracChangeset for help on using the changeset viewer.