PTHREAD_EQUAL(3P)

πŸ‘‘ PTHREAD_EQUAL β€” compare thread IDs πŸ‘‘

okay bestie, welcome to the POSIX Programmer's Manual, section 3P πŸ’… this is the page for pthread_equal(3P) and it's literally the "are these two the same thread??" function. tiny. iconic. does one thing. periodt.


🫢 PROLOG

real talk before we even start: this manual page is part of the POSIX Programmer's Manual. the Linux implementation of this interface may differ (so go check the corresponding Linux manual page for the deets on Linux behavior), or honestly the interface may not even be implemented on Linux at all. no cap.


✨ NAME

pthread_equal β€” compare thread IDs


🌸 SYNOPSIS

#include <pthread.h>

int pthread_equal(pthread_t t1, pthread_t t2);

πŸ’– DESCRIPTION

this function shall compare the thread IDs t1 and t2. that's it. that's the whole job. two IDs walk in, we find out if they're the same. πŸ¦‹


⭐ RETURN VALUE

pthread_equal() shall return a non-zero value if t1 and t2 are equal. otherwise, zero shall be returned. slay.

🚨 and now the scary part: if either t1 or t2 are not valid thread IDs, the behavior is undefined. so like… don't do that. fr fr.

πŸ’€ ERRORS

No errors are defined. she simply does not fail. she's built different. πŸ™ˆ

and just to be super clear: the pthread_equal() function shall not return an error code of [EINTR]. not happening. never.

the following sections are informative (iykyk β€” that means they're the chill, non-normative vibes):


πŸŽ€ EXAMPLES

None. nothing to show off here, the function is three words long, bestie.


πŸ“ APPLICATION USAGE

None. no tips needed, you literally already get it.


🧚 RATIONALE

okay this is actually the tea 🍡 and it's kinda fascinating, so listen up:

implementations may choose to define a thread ID as a structure. why?? because that allows additional flexibility and robustness over using an int. for example, a thread ID could include a sequence number that allows detection of ``dangling IDs'' (copies of a thread ID that has been detached). πŸ‘€

and since the C language does not support comparison on structure types, the pthread_equal() function is provided to compare thread IDs. so like… this whole function exists because you literally cannot == two structs in C. the more you know. 🌈


πŸ’œ FUTURE DIRECTIONS

None. she stays exactly as she is. main character energy that never changes.


πŸ”₯ SEE ALSO

  • pthread_create()
  • pthread_self()
  • the Base Definitions volume of POSIX.1‐2017, <pthread.h>

portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group.

in the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. (yes, the original is the one who decides, not us πŸ’…) the original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. to report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .


and that's the whole page, bestie 🫢 this one came from IEEE/The Open Group, 2017, and yeah the manual name is PTHREAD_EQUAL(3P) in case you forgot already lol. go compare some thread IDs, you absolute icon. mwah πŸ’‹

πŸ“¦ where this page comes from