xref: /freebsd/lib/libsys/thr_exit.2 (revision 8269e767)
18269e767SBrooks Davis.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
28269e767SBrooks Davis.\"
38269e767SBrooks Davis.\" This documentation was written by
48269e767SBrooks Davis.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
58269e767SBrooks Davis.\" from the FreeBSD Foundation.
68269e767SBrooks Davis.\"
78269e767SBrooks Davis.\" Redistribution and use in source and binary forms, with or without
88269e767SBrooks Davis.\" modification, are permitted provided that the following conditions
98269e767SBrooks Davis.\" are met:
108269e767SBrooks Davis.\" 1. Redistributions of source code must retain the above copyright
118269e767SBrooks Davis.\"    notice, this list of conditions and the following disclaimer.
128269e767SBrooks Davis.\" 2. Redistributions in binary form must reproduce the above copyright
138269e767SBrooks Davis.\"    notice, this list of conditions and the following disclaimer in the
148269e767SBrooks Davis.\"    documentation and/or other materials provided with the distribution.
158269e767SBrooks Davis.\"
168269e767SBrooks Davis.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
178269e767SBrooks Davis.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
188269e767SBrooks Davis.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
198269e767SBrooks Davis.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
208269e767SBrooks Davis.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
218269e767SBrooks Davis.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
228269e767SBrooks Davis.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
238269e767SBrooks Davis.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
248269e767SBrooks Davis.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
258269e767SBrooks Davis.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
268269e767SBrooks Davis.\" SUCH DAMAGE.
278269e767SBrooks Davis.\"
288269e767SBrooks Davis.Dd May 5, 2020
298269e767SBrooks Davis.Dt THR_EXIT 2
308269e767SBrooks Davis.Os
318269e767SBrooks Davis.Sh NAME
328269e767SBrooks Davis.Nm thr_exit
338269e767SBrooks Davis.Nd terminate current thread
348269e767SBrooks Davis.Sh LIBRARY
358269e767SBrooks Davis.Lb libc
368269e767SBrooks Davis.Sh SYNOPSIS
378269e767SBrooks Davis.In sys/thr.h
388269e767SBrooks Davis.Ft void
398269e767SBrooks Davis.Fn thr_exit "long *state"
408269e767SBrooks Davis.Sh DESCRIPTION
418269e767SBrooks Davis.Bf -symbolic
428269e767SBrooks DavisThis function is intended for implementing threading.
438269e767SBrooks DavisNormal applications should call
448269e767SBrooks Davis.Xr pthread_exit 3
458269e767SBrooks Davisinstead.
468269e767SBrooks Davis.Ef
478269e767SBrooks Davis.Pp
488269e767SBrooks DavisThe
498269e767SBrooks Davis.Fn thr_exit
508269e767SBrooks Davissystem call terminates the current kernel-scheduled thread.
518269e767SBrooks Davis.Pp
528269e767SBrooks DavisIf the
538269e767SBrooks Davis.Fa state
548269e767SBrooks Davisargument is not
558269e767SBrooks Davis.Dv NULL ,
568269e767SBrooks Davisthe location pointed to by the argument is
578269e767SBrooks Davisupdated with an arbitrary non-zero value, and an
588269e767SBrooks Davis.Xr _umtx_op 2
598269e767SBrooks Davis.Dv UMTX_OP_WAKE
608269e767SBrooks Davisoperation is consequently performed on the location.
618269e767SBrooks Davis.Pp
628269e767SBrooks DavisAttempts to terminate the last thread in the process are silently ignored.
638269e767SBrooks DavisUse
648269e767SBrooks Davis.Xr _exit 2
658269e767SBrooks Davissyscall to terminate the process.
668269e767SBrooks Davis.Sh RETURN VALUES
678269e767SBrooks DavisThe function does not return a value.
688269e767SBrooks DavisA return from the function indicates that the calling thread was the
698269e767SBrooks Davislast one in the process.
708269e767SBrooks Davis.Sh SEE ALSO
718269e767SBrooks Davis.Xr _exit 2 ,
728269e767SBrooks Davis.Xr _umtx_op 2 ,
738269e767SBrooks Davis.Xr thr_kill 2 ,
748269e767SBrooks Davis.Xr thr_kill2 2 ,
758269e767SBrooks Davis.Xr thr_new 2 ,
768269e767SBrooks Davis.Xr thr_self 2 ,
778269e767SBrooks Davis.Xr thr_set_name 2 ,
788269e767SBrooks Davis.Xr pthread_exit 3
798269e767SBrooks Davis.Sh STANDARDS
808269e767SBrooks DavisThe
818269e767SBrooks Davis.Fn thr_exit
828269e767SBrooks Davissystem call is non-standard and is used by
838269e767SBrooks Davis.Lb libthr
848269e767SBrooks Davisto implement
858269e767SBrooks Davis.St -p1003.1-2001
868269e767SBrooks Davis.Xr pthread 3
878269e767SBrooks Davisfunctionality.
888269e767SBrooks Davis.Sh HISTORY
898269e767SBrooks DavisThe
908269e767SBrooks Davis.Fn thr_exit
918269e767SBrooks Davissystem call first appeared in
928269e767SBrooks Davis.Fx 5.2 .
93