On Tue, Nov 2, 2010 at 1:00 AM, Bian Naimeng <[email protected]> wrote: > Sorry to make a noise, please ignore this patch. > However, maybe PTS_UNRESOLVED is better if "ssize != stacksize" at the child > thread. > > Bian Naimeng wrote: >> The pthread_getattr_np is not a POSIX compliant API, it's unnecessary to >> test it. >> >> Signed-off-by: Bian Naimeng <[email protected]> >> >> --- >> .../interfaces/pthread_attr_setstacksize/2-1.c | 17 ++++------------- >> 1 files changed, 4 insertions(+), 13 deletions(-) >> >> diff --git >> a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/2-1.c >> >> b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/2-1.c >> index 668fd96..c91c946 100644 >> --- >> a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/2-1.c >> +++ >> b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/2-1.c >> @@ -14,7 +14,6 @@ >> * 4. In the created thread, read stacksize >> */ >> >> -/* For pthread_getattr_np(3) -- not a POSIX compliant API */ >> #ifndef _GNU_SOURCE >> #define _GNU_SOURCE >> #endif >> @@ -35,21 +34,13 @@ >> size_t stack_size; >> void *stack_addr; >> >> -void *thread_func() >> +void *thread_func(void *arg) >> { >> - pthread_attr_t attr; >> + pthread_attr_t *pattr = (pthread_attr_t *)arg; >> size_t ssize; >> int rc; >> >> - if ((rc = pthread_getattr_np(pthread_self(), &attr)) != 0) { >> - printf(ERROR_PREFIX "pthread_getattr_np: %s\n", strerror(rc)); >> - exit(PTS_FAIL); >> - } >> - if ((rc = pthread_attr_init(&attr)) != 0) { >> - printf(ERROR_PREFIX "pthread_attr_init: %s\n", strerror(rc)); >> - exit(PTS_FAIL); >> - } >> - if ((rc = pthread_attr_getstacksize(&attr, &ssize)) != 0) { >> + if ((rc = pthread_attr_getstacksize(pattr, &ssize)) != 0) { >> printf(ERROR_PREFIX "pthread_attr_getstacksize: %s\n", >> strerror(rc)); >> exit(PTS_FAIL); >> @@ -106,7 +97,7 @@ int main() >> exit(PTS_UNRESOLVED); >> } >> >> - rc = pthread_create(&new_th, &attr, thread_func, NULL); >> + rc = pthread_create(&new_th, &attr, thread_func, &attr); >> if (rc != 0) { >> printf(ERROR_PREFIX "pthread_create: %s\n", strerror(rc)); >> exit(PTS_FAIL);
Possibly, but the only problem with that is that there really needs to be a means to sample the current thread stack size. That's what's missing that needs to go into the POSIX spec. -Garrett ------------------------------------------------------------------------------ The Next 800 Companies to Lead America's Growth: New Video Whitepaper David G. Thomson, author of the best-selling book "Blueprint to a Billion" shares his insights and actions to help propel your business during the next growth cycle. Listen Now! http://p.sf.net/sfu/SAP-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
