| /* |
| * File: create2.c |
| * |
| * Test Synopsis: |
| * - Test that threads have a Win32 handle when started. |
| * |
| * Test Method (Validation or Falsification): |
| * - Statistical, not absolute (depends on sample size). |
| * |
| * Requirements Tested: |
| * - |
| * |
| * Features Tested: |
| * - |
| * |
| * Cases Tested: |
| * - |
| * |
| * Description: |
| * - |
| * |
| * Environment: |
| * - |
| * |
| * Input: |
| * - None. |
| * |
| * Output: |
| * - File name, Line number, and failed expression on failure. |
| * - No output on success. |
| * |
| * Assumptions: |
| * - |
| * |
| * Pass Criteria: |
| * - Process returns zero exit status. |
| * |
| * Fail Criteria: |
| * - Process returns non-zero exit status. |
| */ |
| |
| #include "test.h" |
| |
| const int NUMTHREADS = 10000; |
| |
| static int washere = 0; |
| |
| void * func(void * arg) |
| { |
| washere = 1; |
| return (void *) 0; |
| } |
| |
| int |
| main() |
| { |
| pthread_t t; |
| pthread_attr_t attr; |
| void * result = NULL; |
| int i; |
| |
| pthread_attr_init(&attr); |
| pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); |
| |
| for (i = 0; i < NUMTHREADS; i++) |
| { |
| washere = 0; |
| assert(pthread_create(&t, &attr, func, NULL) == 0); |
| pthread_join(t, &result); |
| assert(washere == 1); |
| } |
| |
| return 0; |
| } |