84114c8dd5b17efecf7988f263ce431208d7be5a |
|
17-Jul-2013 |
Elliott Hughes <enh@google.com> |
Improve stack overflow diagnostics (take 2). This reverts commits eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 and d14dc3b87fbf80553f1cafa453816b7f11366627, and fixes the bug where we were calling mmap (which might cause errno to be set) before __set_tls (which is required to implement errno). Bug: 8557703 Change-Id: I2c36d00240c56e156e1bb430d8c22a73a068b70c
|
d14dc3b87fbf80553f1cafa453816b7f11366627 |
|
17-Jul-2013 |
Guang Zhu <guangzhu@google.com> |
Revert "Improve stack overflow diagnostics." This reverts commit aa754dca90487356cabf07ade0e8d88c2630b784. Change-Id: Ifa76eee31f7f44075eb3a48554315b2693062f44
|
eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 |
|
17-Jul-2013 |
Guang Zhu <guangzhu@google.com> |
Revert "Clean up our alternate signal stacks." This reverts commit 5cf87951abd23b0b3ebf159e8aa06b02e39527ca. Change-Id: Idd6ca7d80a018755da3bd315d91193723ce7f3bf
|
5cf87951abd23b0b3ebf159e8aa06b02e39527ca |
|
16-Jul-2013 |
Elliott Hughes <enh@google.com> |
Clean up our alternate signal stacks. Bug: 8557703 Change-Id: Ie93901dd1c29e9d3bf795b0f0400616d9ef08f75
|
aa754dca90487356cabf07ade0e8d88c2630b784 |
|
16-Jul-2013 |
Elliott Hughes <enh@google.com> |
Improve stack overflow diagnostics. We notify debuggerd of problems by installing signal handlers. That's fine except for when the signal is caused by us running off the end of a thread's stack and into the guard page. Bug: 8557703 Change-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3
|
b95cf0d23a1db3b7c37bd98b0c86196796c9b029 |
|
15-Jul-2013 |
Elliott Hughes <enh@google.com> |
Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize. pthread_getattr_np was reporting the values supplied to us, not the values we actually used, which is kinda the whole point of pthread_getattr_np. pthread_attr_setguardsize and pthread_attr_setstacksize were reporting EINVAL for any size that wasn't a multiple of the system page size. This is unnecessary. We can just round like POSIX suggests and glibc already does. Also improve the error reporting for pthread_create failures. Change-Id: I7ebc518628a8a1161ec72e111def911d500bba71
|
0f020d18b138e24b1fe34074808e07ac412f35a4 |
|
06-Jun-2013 |
msg555 <msg555@gmail.com> |
Handles spurious wake-ups in pthread_join() Removed 'join_count' from pthread_internal_t and switched to using the flag PTHREAD_ATTR_FLAG_JOINED to indicate if a thread is being joined. Combined with a switch to a while loop in pthread_join, this fixes spurious wake-ups but prevents a thread from being joined multiple times. This is fine for two reasons: 1) The pthread_join specification allows for undefined behavior when multiple threads try to join a single thread. 2) There is no thread safe way to allow multiple threads to join a single thread with the pthread interface. The second thread calling pthread_join could be pre-empted until the thread is destroyed and its handle reused for a different thread. Therefore multi-join is always an error. Bug: https://code.google.com/p/android/issues/detail?id=52255 Change-Id: I8b6784d47620ffdcdbfb14524e7402e21d46c5f7
|
96449b3dc16d64ea91df83c9d7942f3e22e76b52 |
|
30-Mar-2013 |
Elliott Hughes <enh@google.com> |
Extra logging in pthread_create. pthread_create returns EAGAIN when it can't allocate a pthread_internal_t, when it can't allocate a stack for the new thread, or when clone(2) fails because there are too many threads. It's useful to be able to know why your pthread_create just failed, so add some logging. Bug: 8470684 (cherry picked from commit cfa089df23ff50fcd5ed3854c54991d30be5fc7e) Change-Id: Ibfc98a84c1817a931f9ae4c2b88762f0edfb6b79
|
cfa089df23ff50fcd5ed3854c54991d30be5fc7e |
|
30-Mar-2013 |
Elliott Hughes <enh@google.com> |
Extra logging in pthread_create. pthread_create returns EAGAIN when it can't allocate a pthread_internal_t, when it can't allocate a stack for the new thread, or when clone(2) fails because there are too many threads. It's useful to be able to know why your pthread_create just failed, so add some logging. Bug: 8470684 Change-Id: I1bb4497d4f7528eacce0db35c2014771cba64569
|
8f2a5a0b40fc82126c691d5c30131d908772aab7 |
|
15-Mar-2013 |
Elliott Hughes <enh@google.com> |
Clean up internal libc logging. We only need one logging API, and I prefer the one that does no allocation and is thus safe to use in any context. Also use O_CLOEXEC when opening the /dev/log files. Move everything logging-related into one header file. Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
|
40eabe24e4e3ae8ebe437f1f4e43cf39cbba2e9e |
|
15-Feb-2013 |
Elliott Hughes <enh@google.com> |
Fix the pthread_setname_np test. Fix the pthread_setname_np test to take into account that emulator kernels are so old that they don't support setting the name of other threads. The CLONE_DETACHED thread is obsolete since 2.5 kernels. Rename kernel_id to tid. Fix the signature of __pthread_clone. Clean up the clone and pthread_setname_np implementations slightly. Change-Id: I16c2ff8845b67530544bbda9aa6618058603066d
|
4b4a8824289c48c823cd38bc63289d121aae3d67 |
|
13-Feb-2013 |
Elliott Hughes <enh@google.com> |
Clean up pthread_create. Bug: 3461078 Change-Id: I082122a86d7692cd58f4145539241be026258ee0
|