.\"***************************************************************************
-.\" Copyright (c) 2008 Free Software Foundation, Inc. *
+.\" Copyright (c) 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.24 2017/11/18 23:56:00 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
+.br
\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
.br
+\fBint get_escdelay(void);\fR
+.br
\fBint set_escdelay(int size);\fR
.br
\fBint set_tabsize(int size);\fR
.br
-\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
+\fBint use_screen(SCREEN *scr, NCURSES_SCREEN_CB func, void *data);\fR
.br
-\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
+\fBint use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data);\fR
.br
.SH DESCRIPTION
This implementation can be configured to provide rudimentary support
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,
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,
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
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)
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)
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)
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
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
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)
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
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
wget_wstr/screen (input-operation)
wgetbkgrnd/window
wgetch/screen (input-operation)
+wgetdelay/window
wgetn_wstr/screen (input-operation)
wgetnstr/screen (input-operation)
wgetparent/window
wprintw/window
wredrawln/window
wrefresh/screen
-wresize/window
+wresize/window locks(windowlist)
wscanw/screen
wscrl/window
wsetscrreg/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
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).