-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2008 Free Software Foundation, Inc. *
+ * Copyright (c) 2008-2012,2014 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 *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_threads.3x,v 1.12 2008/04/12 18:22:51 tom Exp @
+ * @Id: curs_threads.3x,v 1.20 2014/03/15 19:25:28 tom Exp @
* ***************************************************************************
* ***************************************************************************
-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_threads 3x</TITLE>
<link rev=made href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<H1>curs_threads 3x</H1>
<HR>
<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
-<H2>NAME</H2><PRE>
+<H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <STRONG>curses</STRONG> thread support
</PRE>
-<H2>SYNOPSIS</H2><PRE>
+<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
- <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG> <STRONG>type-</STRONG>
- <STRONG>def</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
+ <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
+ <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
+ <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
<STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <STRONG>size);</STRONG>
<STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <STRONG>size);</STRONG>
- <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
+ <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
<STRONG>*data);</STRONG>
- <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
+ <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
<STRONG>*data);</STRONG>
</PRE>
-<H2>DESCRIPTION</H2><PRE>
- This implementation can be configured to provide rudimen-
- tary support for multi-threaded applications. This makes
- a different set of libraries, e.g., <EM>libncursest</EM> since the
+<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ This implementation can be configured to provide rudimen-
+ tary support for multi-threaded applications. This makes
+ a different set of libraries, e.g., <EM>libncursest</EM> since the
binary interfaces are different.
- Rather than modify the interfaces to pass a thread speci-
- fier to each function, it adds a few functions which can
+ Rather than modify the interfaces to pass a thread speci-
+ fier to each function, it adds a few functions which can
be used in any configuration which hide the mutex's needed
- to prevent concurrent use of the global variables when
+ to prevent concurrent use of the global variables when
configured for threading.
- In addition to forcing access to members of the <STRONG>WINDOW</STRONG>
- structure to be via functions (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>), it
+ In addition to forcing access to members of the <STRONG>WINDOW</STRONG>
+ structure to be via functions (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>), it
makes functions of the common global variables, e.g., COL-
- ORS, COLOR_PAIRS, COLS, ESCDELAY, LINES, TABSIZE curscr,
- newscr and ttytype. Those variables are maintained as
+ ORS, COLOR_PAIRS, COLS, ESCDELAY, LINES, TABSIZE curscr,
+ newscr and ttytype. Those variables are maintained as
read-only values, stored in the <STRONG>SCREEN</STRONG> structure.
- Even this is not enough to make a thread-safe application
- using curses. A multi-threaded application would be ex-
- pected to have threads updating separate windows (within
+ Even this is not enough to make a thread-safe application
+ using curses. A multi-threaded application would be ex-
+ pected to have threads updating separate windows (within
the same device), or updating on separate screens (on dif-
- ferent devices). Also, a few of the global variables are
- considered writable by some applications. The functions
+ ferent devices). Also, a few of the global variables are
+ considered writable by some applications. The functions
described here address these special situations.
- The ESCDELAY and TABSIZE global variables are modified by
- some applications. To modify them in any configuration,
- use the <STRONG>set_escdelay</STRONG> or <STRONG>set_tabsize</STRONG> functions. Other
+ The ESCDELAY and TABSIZE global variables are modified by
+ some applications. To modify them in any configuration,
+ use the <STRONG>set_escdelay</STRONG> or <STRONG>set_tabsize</STRONG> functions. Other
global variables are not modifiable.
- The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse
+ The <STRONG>get_escdelay</STRONG> function returns the value for ESCDELAY.
+
+ The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse
granularity mutexes for their respective <STRONG>WINDOW</STRONG> and <STRONG>SCREEN</STRONG>
- parameters, and call a user-supplied function, passing it
- a <EM>data</EM> parameter, and returning the value from the user-
+ parameters, and call a user-supplied function, passing it
+ a <EM>data</EM> parameter, and returning the value from the user-
supplied function to the application.
- <STRONG>USAGE</STRONG>
- All of the ncurses library functions assume that the lo-
- cale is not altered during operation. In addition, they
+
+</PRE>
+<H3><a name="h3-USAGE">USAGE</a></H3><PRE>
+ All of the ncurses library functions assume that the lo-
+ cale is not altered during operation. In addition, they
use data which is maintained within a hierarchy of scopes.
- - global data, e.g., used in the low-level termin-
- fo or termcap interfaces.
+ <STRONG>o</STRONG> global data, e.g., used in the low-level terminfo
+ or termcap interfaces.
- - terminal data, e.g., associated with a call to
- <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM>. The terminal data are initialized
- when screens are created.
+ <STRONG>o</STRONG> terminal data, e.g., associated with a call to
+ <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM>. The terminal data are initialized
+ when screens are created.
- - screen data, e.g., associated with a call to
- <EM>newterm</EM> or <EM>initscr</EM>.
+ <STRONG>o</STRONG> screen data, e.g., associated with a call to
+ <EM>newterm</EM> or <EM>initscr</EM>.
- - window data, e.g., associated with a call to
- <EM>newwin</EM> or <EM>subwin</EM>. Windows are associated with
- screens. Pads are not necessarily associated
- with a particular screen.
+ <STRONG>o</STRONG> window data, e.g., associated with a call to <EM>newwin</EM>
+ or <EM>subwin</EM>. Windows are associated with screens.
+ Pads are not necessarily associated with a particu-
+ lar screen.
- Most curses applications operate on one or more
- windows within a single screen.
+ Most curses applications operate on one or more
+ windows within a single screen.
- - reentrant, i.e., it uses only the data passed as
- parameters.
+ <STRONG>o</STRONG> reentrant, i.e., it uses only the data passed as
+ parameters.
This table lists the scope of data used for each symbol in
the ncurses library when it is configured to support
boolfnames global (readonly)
boolnames global (readonly)
border window (stdscr)
+
border_set window (stdscr)
box window (stdscr)
box_set window (stdscr)
-
can_change_color terminal
cbreak screen
chgat window (stdscr)
has_key screen
hline window (stdscr)
hline_set window (stdscr)
+
idcok window
idlok window
immedok window
-
in_wch window (stdscr)
in_wchnstr window (stdscr)
in_wchstr window (stdscr)
mvaddstr window (stdscr)
mvaddwstr window (stdscr)
mvchgat window (stdscr)
+
mvcur screen
mvdelch window (stdscr)
mvderwin window (stdscr)
-
mvget_wch screen (input-operation)
mvget_wstr screen (input-operation)
mvgetch screen (input-operation)
mvwinsch window
mvwinsnstr window
mvwinsstr window
+
mvwinstr window
mvwinwstr window
mvwprintw window
-
mvwscanw screen
mvwvline window
mvwvline_set window
slk_attr_on screen
slk_attr_set screen
slk_attroff screen
+
slk_attron screen
slk_attrset screen
slk_clear screen
-
slk_color screen
slk_init screen
slk_label screen
wadd_wchnstr window
wadd_wchstr window
waddch window
+
waddchnstr window
waddchstr window
waddnstr window
-
waddnwstr window
waddstr window
waddwstr window
wget_wstr screen (input-operation)
wgetbkgrnd window
wgetch screen (input-operation)
+ wgetdelay window
wgetn_wstr screen (input-operation)
wgetnstr screen (input-operation)
wgetparent window
wnoutrefresh screen
wprintw window
wredrawln window
+
wrefresh screen
wresize window locks(windowlist)
wscanw screen
wscrl window
-
wsetscrreg window
wstandend window
wstandout window
</PRE>
-<H2>RETURN VALUE</H2><PRE>
+<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
These functions all return TRUE or FALSE, except as noted.
</PRE>
-<H2>NOTES</H2><PRE>
+<H2><a name="h2-NOTES">NOTES</a></H2><PRE>
Both a macro and a function are provided for each name.
</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on ncurses ex-
+<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These routines are specific to ncurses. They were not
+ supported on Version 7, BSD or System V implementations.
+ It is recommended that any code depending on ncurses ex-
tensions be conditioned using NCURSES_VERSION.
</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
+<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-USAGE">USAGE</a></li>
+</ul>
+</li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
</BODY>
</HTML>