OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [newlib-1.18.0/] [newlib/] [libc/] [sys/] [linux/] [linuxthreads/] [tststack.c] - Blame information for rev 859

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 207 jeremybenn
/* Tests for variable stack size handling.
2
   Copyright (C) 2000 Free Software Foundation, Inc.
3
   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
4
 
5
   The GNU C Library is free software; you can redistribute it and/or
6
   modify it under the terms of the GNU Library General Public License as
7
   published by the Free Software Foundation; either version 2 of the
8
   License, or (at your option) any later version.
9
 
10
   The GNU C Library is distributed in the hope that it will be useful,
11
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
   Library General Public License for more details.
14
 
15
   You should have received a copy of the GNU Library General Public
16
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
17
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18
   Boston, MA 02111-1307, USA.  */
19
 
20
#include <pthread.h>
21
#include <stdio.h>
22
#include <unistd.h>
23
 
24
static void *f1 (void *);
25
static void *f2 (void *);
26
 
27
int
28
main (void)
29
{
30
  pthread_attr_t attr;
31
  pthread_t th1 = 0;
32
  pthread_t th2 = 0;
33
  void *res1;
34
  void *res2;
35
 
36
  pthread_attr_init (&attr);
37
  if (pthread_attr_setstacksize (&attr, 70*1024) != 0)
38
    {
39
      puts ("invalid stack size");
40
      return 1;
41
    }
42
 
43
  pthread_create (&th1, NULL, f1, NULL);
44
  pthread_create (&th2, &attr, f2, NULL);
45
 
46
  pthread_join (th1, &res1);
47
  pthread_join (th2, &res2);
48
 
49
  printf ("res1 = %p\n", res1);
50
  printf ("res2 = %p\n", res2);
51
 
52
  return res1 != (void *) 1 || res2 != (void *) 2;
53
}
54
 
55
static void *
56
f1 (void *parm)
57
{
58
  printf ("This is `%s'\n", __FUNCTION__);
59
  fflush (stdout);
60
 
61
  return (void *) 1;
62
}
63
 
64
static void *
65
f2 (void *parm)
66
{
67
  printf ("This is `%s'\n", __FUNCTION__);
68
  fflush (stdout);
69
  sleep (1);
70
 
71
  return (void *) 2;
72
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.