ncurses 6.2 - patch 20210109
[ncurses.git] / man / curs_threads.3x
index d15b6f7a5c16ffa46f12cc346d2b98fcb7af408c..cb2da61a55df8501fe5f39ece22978a410b19509 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 2008 Free Software Foundation, Inc.                        *
+.\" Copyright 2020 Thomas E. Dickey                                          *
+.\" Copyright 2008-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_threads.3x,v 1.10 2008/04/05 23:51:41 tom Exp $
+.\" $Id: curs_threads.3x,v 1.27 2020/12/30 18:28:51 tom Exp $
 .TH curs_threads 3X ""
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
 .na
 .hy 0
 .SH NAME
-\fBuse_screen\fR,
-\fBuse_window\fR - \fBcurses\fR thread support
+\fBcurs_threads\fR \- \fBcurses\fR thread support
 .ad
 .hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .sp
 \fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);\fR
-\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
 .br
-\fBint set_escdelay(int size);\fR
+\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
+.sp
+\fBint get_escdelay(void);\fR
 .br
-\fBint set_tabsize(int size);\fR
+\fBint set_escdelay(int \fP\fIms\fP\fB);\fR
 .br
-\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
+\fBint set_tabsize(int \fP\fIcols\fP\fB);\fR
+.sp
+\fBint use_screen(SCREEN *\fP\fIscr\fP\fB, NCURSES_SCREEN_CB \fP\fIfunc\fP\fB, void *\fP\fIdata\fP\fB);\fR
 .br
-\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
+\fBint use_window(WINDOW *\fP\fIwin\fP\fB, NCURSES_WINDOW_CB \fP\fIfunc\fP\fB, void *\fP\fIdata\fP\fB);\fR
 .br
 .SH DESCRIPTION
 This implementation can be configured to provide rudimentary support
@@ -61,7 +68,7 @@ configuration which hide the mutex's needed to prevent concurrent
 use of the global variables when configured for threading.
 .PP
 In addition to forcing access to members of the \fBWINDOW\fP structure
-to be via functions (see \fBcurs_opaque\fP(3x)),
+to be via functions (see \fBcurs_opaque\fP(3X)),
 it makes functions of the common global variables,
 e.g.,
 COLORS,
@@ -89,6 +96,8 @@ To modify them in any configuration,
 use the \fBset_escdelay\fP or \fBset_tabsize\fP functions.
 Other global variables are not modifiable.
 .PP
+The \fBget_escdelay\fP function returns the value for ESCDELAY.
+.PP
 The \fBuse_window\fP and \fBuse_screen\fP functions provide coarse
 granularity mutexes for their respective \fBWINDOW\fP and \fBSCREEN\fP
 parameters, and call a user-supplied function,
@@ -100,26 +109,21 @@ All of the ncurses library functions assume that the locale is not
 altered during operation.
 In addition,
 they use data which is maintained within a hierarchy of scopes.
-.RS
-.TP 3
--
+.RS 3
+.bP
 global data, e.g., used in the low-level terminfo or termcap interfaces.
-.TP 3
--
+.bP
 terminal data, e.g., associated with a call to \fIset_curterm\fP.
 The terminal data are initialized when screens are created.
-.TP 3
--
+.bP
 screen data, e.g., associated with a call to \fInewterm\fP or \fIinitscr\fP.
-.TP 3
--
+.bP
 window data, e.g., associated with a call to \fInewwin\fP or \fIsubwin\fP.
 Windows are associated with screens.
 Pads are not necessarily associated with a particular screen.
 .IP
 Most curses applications operate on one or more windows within a single screen.
-.TP 3
--
+.bP
 reentrant, i.e., it uses only the data passed as parameters.
 .RE
 .PP
@@ -184,7 +188,7 @@ clrtobot/window (stdscr)
 clrtoeol/window (stdscr)
 color_content/screen
 color_set/window (stdscr)
-copywin/window (both source, target)
+copywin/window locks(source, target)
 cur_term/terminal
 curs_set/screen
 curscr/screen (readonly)
@@ -196,11 +200,11 @@ del_curterm/screen
 delay_output/screen
 delch/window (stdscr)
 deleteln/window (stdscr)
-delscreen/reentrant
-delwin/reentrant
+delscreen/global locks(screenlist, screen)
+delwin/global locks(windowlist)
 derwin/screen
 doupdate/screen
-dupwin/screen
+dupwin/screen locks(window)
 echo/screen
 echo_wchar/window (stdscr)
 echochar/window (stdscr)
@@ -249,7 +253,7 @@ inchnstr/window (stdscr)
 inchstr/window (stdscr)
 init_color/screen
 init_pair/screen
-initscr/global
+initscr/global locks(screenlist)
 innstr/window (stdscr)
 innwstr/window (stdscr)
 ins_nwstr/window (stdscr)
@@ -377,10 +381,10 @@ mvwscanw/screen
 mvwvline/window
 mvwvline_set/window
 napms/reentrant
-newpad/reentrant
+newpad/global locks(windowlist)
 newscr/screen (readonly)
-newterm/global
-newwin/reentrant
+newterm/global locks(screenlist)
+newwin/global locks(windowlist)
 nl/screen
 nocbreak/screen
 nodelay/window
@@ -394,8 +398,8 @@ numcodes/global (readonly)
 numfnames/global (readonly)
 numnames/global (readonly)
 ospeed/global
-overlay/window (both source, target)
-overwrite/window (both source, target)
+overlay/window locks(source, target)
+overwrite/window locks(source, target)
 pair_content/screen
 pecho_wchar/screen
 pechochar/screen
@@ -411,7 +415,7 @@ refresh/screen
 reset_prog_mode/screen
 reset_shell_mode/screen
 resetty/terminal
-resize_term/screen
+resize_term/screen locks(windowlist)
 resizeterm/screen
 restartterm/screen
 ripoffline/global (static data)
@@ -427,7 +431,7 @@ scrollok/window
 set_curterm/screen
 set_escdelay/screen
 set_tabsize/screen
-set_term/reentrant
+set_term/global locks(screenlist, screen)
 setcchar/reentrant
 setscrreg/window (stdscr)
 setupterm/global
@@ -486,8 +490,8 @@ use_default_colors/screen
 use_env/global (static data)
 use_extended_names/global (static data)
 use_legacy_coding/screen
-use_screen/reentrant
-use_window/reentrant
+use_screen/global locks(screenlist, screen)
+use_window/global locks(windowlist, window)
 vid_attr/screen
 vid_puts/screen
 vidattr/screen
@@ -537,6 +541,7 @@ wget_wch/screen (input-operation)
 wget_wstr/screen (input-operation)
 wgetbkgrnd/window
 wgetch/screen (input-operation)
+wgetdelay/window
 wgetn_wstr/screen (input-operation)
 wgetnstr/screen (input-operation)
 wgetparent/window
@@ -568,7 +573,7 @@ wnoutrefresh/screen
 wprintw/window
 wredrawln/window
 wrefresh/screen
-wresize/window
+wresize/window locks(windowlist)
 wscanw/screen
 wscrl/window
 wsetscrreg/window
@@ -584,7 +589,7 @@ wvline_set/window
 .TE
 .\" ***************************************************************************
 .SH RETURN VALUE
-These functions all return TRUE or FALSE, except as noted.
+These functions all return \fBTRUE\fP or \fBFALSE\fP, except as noted.
 .SH NOTES
 Both a macro and a function are provided for each name.
 .SH PORTABILITY
@@ -594,10 +599,5 @@ It is recommended that any code depending on ncurses extensions
 be conditioned using NCURSES_VERSION.
 .SH SEE ALSO
 \fBcurses\fR(3X),
-\fBcurs_opaque\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+\fBcurs_opaque\fR(3X),
+\fBcurs_variables\fR(3X).