summaryrefslogtreecommitdiffstats
path: root/include/utils/threads.h
Commit message (Collapse)AuthorAgeFilesLines
* remove files that moved to frameworks/nativeMathias Agopian2012-03-071-38/+0
| | | | Change-Id: I140d291e520097b1148930f736823650e08488f7
* split utils/threads.h into multiple headersMathias Agopian2012-02-271-544/+10
| | | | | | | | | | | | | AndroidDefs.h - C/C++ enums and types Mutex.h - Mutex class declaration Condition.h - Condition class declaration RWLock.h - RWLock class declaration Thread.h - Thread class declaration AndroidThreads.h - low-level thread creation functions threads.h - includes all the above for backward source compatibility Change-Id: Ia2f80c175333b59a41d1720985810bb2346e94cb Note: implementations are still in Threads.cpp
* Thread::getTid returns pid_t gettid() after runGlenn Kasten2012-01-171-2/+10
| | | | | | | This is needed when the parent or any other thread besides the child needs access to the child's kernel tid. Change-Id: Ib148505913eb78314cfd76657c30d7b20663dffd
* A new API "androidGetThreadPriority"Andreas Huber2011-09-161-0/+4
| | | | Change-Id: I6baeead8c70460863343fd557250635fb1e6a170
* Merge "Add C++ thread API androidGetThreadSchedulingGroup"Glenn Kasten2011-08-291-0/+7
|\
| * Add C++ thread API androidGetThreadSchedulingGroupGlenn Kasten2011-07-081-0/+7
| | | | | | | | | | | | | | This API is intended for applications that need to read a thread's scheduling group, while using the higher-level (C++) family of thread APIs. Change-Id: I5e58017f74c3989b20b5b1cc2bc4483c95720520
* | Fix typos and use new HAL_PRIORITY_URGENT_DISPLAY constantMathias Agopian2011-08-091-3/+4
|/ | | | Change-Id: I703f8a96dd0dfec427e74363ad95729bfefc95c7
* Merge "Add Thread::join"Glenn Kasten2011-07-061-0/+4
|\
| * Add Thread::joinGlenn Kasten2011-06-231-0/+4
| | | | | | | | | | | | | | | | | | This new API will be used by applications that previously used the lower-level pthread APIs (including pthread_join). Centralizing on the Thread class instead of pthread will permit additional functionality to be added later in only one location. Change-Id: I8460169ac9c61ac9f85752405ed54c94651058d7
* | Thread ID zero for androidSetThreadSchedulingGroupGlenn Kasten2011-06-221-2/+2
|/ | | | | | Already implemented by androidSetThreadPriority but not documented Change-Id: I85302b17092952065f3f3a4214d8d8abdd465dbd
* Remove redundant memory barrierGlenn Kasten2011-06-101-0/+1
| | | | | | | | | | | | | | pthread_create already includes the necessary memory barriers: - parent at pthread_create : pthread_mutex_unlock(start_mutex) - child at __thread_entry : pthread_mutex_lock(start_mutex) Add lock around uses of mThread. Added comments: - uses of mThread require lock - androidCreateRawThreadEtc returned ID is not safe for direct use from non-parent threads. Change-Id: I18cb296b41ddaf64cf127b57aab31154319b5970
* Bug 3362814 Fix SMP race in access to mRequestExitGlenn Kasten2011-02-231-1/+2
| | | | | | Also fix an unlikely SMP race in access to mHoldSelf on entry to _threadLoop. Change-Id: I6cbc0b94739c7dd5e77e8a5ba0da22cdc0b1a4db
* added RWLock C++ wrapperMathias Agopian2010-05-191-0/+90
| | | | Change-Id: Ia736bf7f6e2c49915a9ab5669551cf89dafa7961
* libutils Condition are now PRIVATE by defaultMathias Agopian2010-03-191-1/+18
| | | | | | | | | | | Condition must be initialized with SHARED for the old behavior, where they can be used accross processes. Updated the two places android that require SHARED conditions. PRIVATE conditions (and mutexes) use more efficient syscalls. Change-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a
* Propagate background scheduling class across processes.Dianne Hackborn2009-12-071-0/+18
| | | | | | | | | | | This is a very simply implementation: upon receiving an IPC, if the handling thread is at a background priority (the driver will have taken care of propagating this from the calling thread), then stick it in to the background scheduling group. Plus an API to turn this off for the process, which is used by the system process. This also pulls some of the code for managing scheduling classes out of the Process JNI wrappers and in to some convenience methods in thread.h.
* process: Switch to common cutils sched_policy apiSan Mehat2009-09-121-5/+0
| | | | Signed-off-by: San Mehat <san@google.com>
* Process: Add support for using scheduler policies instead of cgroups.San Mehat2009-09-101-0/+5
| | | | | | Preference is given to cgroups if available. Signed-off-by: San Mehat <san@google.com>
* use broadcast() instead of signal() when signaling the condition-variable ↵Mathias Agopian2009-09-091-0/+3
| | | | | | | | Thread::RequestExitAndWait() is waiting for we could have several thread waiting on the condition and they all need to wake-up. also added a debug "mTid" field in the class, which contains the tid of the thread (as opposed to pthread_t), this is useful when debugging under gdb for instance.
* add a ctor to Mutex to specify the type, which can be shared. This is used ↵Mathias Agopian2009-07-131-0/+17
| | | | by sf and af an soon will allow some optimization in the kernel for non shared mutexes
* implement Mutex and Condition with pthread instead of calling futex directly.Mathias Agopian2009-07-131-4/+86
| | | | | internally pthread uses futex. the implementation consists of simple inlines there are no implementation files anymore.
* some work to try to reduce the code size of some native librariesMathias Agopian2009-05-261-5/+5
| | | | | | | | | | | | | | | | | - make sure that all binder Bn classes define a ctor and dtor in their respective library. This avoids duplication of the ctor/dtor in libraries where these objects are instantiated. This is also cleaner, should we want these ctor/dtor to do something one day. - same change as above for some Bp classes and various other non-binder classes - moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere. - improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere - IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16 - implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called. The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
* Add support for changing a threads scheduler group. Three groups are ↵San Mehat2009-04-271-0/+7
| | | | | | available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background Signed-off-by: San Mehat <san@google.com>
* auto import from //depot/cupcake/@136594The Android Open Source Project2009-03-051-35/+0
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+347
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-347/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+347