@@ -17,19 +17,30 @@ x_cgo_getstackbound(uintptr bounds[2])
17
17
pthread_attr_t attr ;
18
18
void * addr ;
19
19
size_t size ;
20
+ int err ;
20
21
21
22
// Needed before pthread_getattr_np, too, since before glibc 2.32
22
23
// it did not call pthread_attr_init in all cases (see #65625).
23
- pthread_attr_init (& attr );
24
+ err = pthread_attr_init (& attr );
25
+ if (err != 0 )
26
+ fatalf ("pthread_attr_init failed: %d" , err );
24
27
#if defined(__GLIBC__ ) || defined(__BIONIC__ ) || (defined(__sun ) && !defined(__illumos__ ))
25
28
// pthread_getattr_np is a GNU extension supported in glibc.
26
29
// Solaris is not glibc but does support pthread_getattr_np
27
30
// (and the fallback doesn't work...). Illumos does not.
28
- pthread_getattr_np (pthread_self (), & attr ); // GNU extension
29
- pthread_attr_getstack (& attr , & addr , & size ); // low address
31
+ err = pthread_getattr_np (pthread_self (), & attr );
32
+ if (err != 0 )
33
+ fatalf ("pthread_getattr_np failed: %d" , err );
34
+ err = pthread_attr_getstack (& attr , & addr , & size );
35
+ if (err != 0 )
36
+ fatalf ("pthread_attr_getstack failed: %d" , err );
30
37
#elif defined(__illumos__ )
31
- pthread_attr_get_np (pthread_self (), & attr );
32
- pthread_attr_getstack (& attr , & addr , & size ); // low address
38
+ err = pthread_attr_get_np (pthread_self (), & attr );
39
+ if (err != 0 )
40
+ fatalf ("pthread_attr_get_np failed: %d" , err );
41
+ err = pthread_attr_getstack (& attr , & addr , & size );
42
+ if (err != 0 )
43
+ fatalf ("pthread_attr_getstack failed: %d" , err );
33
44
#else
34
45
// We don't know how to get the current stacks, leave it as
35
46
// 0 and the caller will use an estimate based on the current
0 commit comments