| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I140d291e520097b1148930f736823650e08488f7
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This is needed when the parent or any other thread besides the child
needs access to the child's kernel tid.
Change-Id: Ib148505913eb78314cfd76657c30d7b20663dffd
|
|
|
|
| |
Change-Id: I6baeead8c70460863343fd557250635fb1e6a170
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
Change-Id: I703f8a96dd0dfec427e74363ad95729bfefc95c7
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
| |
Already implemented by androidSetThreadPriority but not documented
Change-Id: I85302b17092952065f3f3a4214d8d8abdd465dbd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Also fix an unlikely SMP race in access to mHoldSelf on entry to _threadLoop.
Change-Id: I6cbc0b94739c7dd5e77e8a5ba0da22cdc0b1a4db
|
|
|
|
| |
Change-Id: Ia736bf7f6e2c49915a9ab5669551cf89dafa7961
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Signed-off-by: San Mehat <san@google.com>
|
|
|
|
|
|
| |
Preference is given to cgroups if available.
Signed-off-by: San Mehat <san@google.com>
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
by sf and af an soon will allow some optimization in the kernel for non shared mutexes
|
|
|
|
|
| |
internally pthread uses futex. the implementation consists of simple inlines
there are no implementation files anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
| |
|
|
|