diff options
Diffstat (limited to 'ncurses-5.9/doc/html/man/curs_threads.3x.html')
-rw-r--r-- | ncurses-5.9/doc/html/man/curs_threads.3x.html | 634 |
1 files changed, 634 insertions, 0 deletions
diff --git a/ncurses-5.9/doc/html/man/curs_threads.3x.html b/ncurses-5.9/doc/html/man/curs_threads.3x.html new file mode 100644 index 0000000..394544a --- /dev/null +++ b/ncurses-5.9/doc/html/man/curs_threads.3x.html @@ -0,0 +1,634 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> +<!-- + **************************************************************************** + * Copyright (c) 2008,2010 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 * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** + * @Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp @ + * *************************************************************************** + * *************************************************************************** +--> +<HTML> +<HEAD> +<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"> +</HEAD> +<BODY> +<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> + <STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <STRONG>curses</STRONG> thread support + + +</PRE> +<H2>SYNOPSIS</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>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>*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>*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 + 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 + be used in any configuration which hide the mutex's needed + 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 + 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 + 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 + 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 + 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 + global variables are not modifiable. + + 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- + 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 + use data which is maintained within a hierarchy of scopes. + + <STRONG>o</STRONG> global data, e.g., used in the low-level terminfo + or termcap interfaces. + + <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. + + <STRONG>o</STRONG> screen data, e.g., associated with a call to + <EM>newterm</EM> or <EM>initscr</EM>. + + <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. + + <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 + threading: + + Symbol Scope + ------------------------------------------------------------- + BC global + COLORS screen (readonly) + COLOR_PAIR reentrant + COLOR_PAIRS screen (readonly) + COLS screen (readonly) + ESCDELAY screen (readonly, see <EM>set</EM><STRONG>_</STRONG><EM>escdelay</EM>) + LINES screen (readonly) + PAIR_NUMBER reentrant + PC global + SP global + TABSIZE screen (readonly) + UP global + acs_map screen (readonly) + add_wch window (stdscr) + add_wchnstr window (stdscr) + add_wchstr window (stdscr) + addch window (stdscr) + addchnstr window (stdscr) + addchstr window (stdscr) + addnstr window (stdscr) + addnwstr window (stdscr) + addstr window (stdscr) + addwstr window (stdscr) + assume_default_colors screen + attr_get window (stdscr) + attr_off window (stdscr) + attr_on window (stdscr) + attr_set window (stdscr) + attroff window (stdscr) + attron window (stdscr) + attrset window (stdscr) + baudrate screen + beep screen + bkgd window (stdscr) + bkgdset window (stdscr) + bkgrnd window (stdscr) + bkgrndset window (stdscr) + boolcodes global (readonly) + 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) + clear window (stdscr) + clearok window + clrtobot window (stdscr) + clrtoeol window (stdscr) + color_content screen + color_set window (stdscr) + copywin window locks(source, target) + cur_term terminal + curs_set screen + curscr screen (readonly) + curses_version global (readonly) + def_prog_mode terminal + def_shell_mode terminal + define_key screen + del_curterm screen + delay_output screen + delch window (stdscr) + deleteln window (stdscr) + delscreen global locks(screenlist, screen) + delwin global locks(windowlist) + derwin screen + doupdate screen + dupwin screen locks(window) + echo screen + echo_wchar window (stdscr) + echochar window (stdscr) + endwin screen + erase window (stdscr) + erasechar window (stdscr) + erasewchar window (stdscr) + filter global + flash terminal + flushinp screen + get_wch screen (input-operation) + get_wstr screen (input-operation) + getattrs window + getbegx window + getbegy window + getbkgd window + getbkgrnd window + getcchar reentrant + getch screen (input-operation) + getcurx window + getcury window + getmaxx window + getmaxy window + getmouse screen (input-operation) + getn_wstr screen (input-operation) + getnstr screen (input-operation) + getparx window + getpary window + getstr screen (input-operation) + getwin screen (input-operation) + halfdelay screen + has_colors terminal + has_ic terminal + has_il terminal + 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) + inch window (stdscr) + inchnstr window (stdscr) + inchstr window (stdscr) + init_color screen + init_pair screen + initscr global locks(screenlist) + innstr window (stdscr) + innwstr window (stdscr) + ins_nwstr window (stdscr) + ins_wch window (stdscr) + ins_wstr window (stdscr) + insch window (stdscr) + insdelln window (stdscr) + insertln window (stdscr) + insnstr window (stdscr) + insstr window (stdscr) + instr window (stdscr) + intrflush terminal + inwstr window (stdscr) + is_cleared window + is_idcok window + is_idlok window + is_immedok window + is_keypad window + is_leaveok window + is_linetouched window + is_nodelay window + is_notimeout window + is_scrollok window + is_syncok window + is_term_resized terminal + is_wintouched window + isendwin screen + key_defined screen + key_name global (static data) + keybound screen + keyname global (static data) + keyok screen + keypad window + killchar terminal + killwchar terminal + leaveok window + longname screen + mcprint terminal + meta screen + mouse_trafo window (stdscr) + mouseinterval screen + mousemask screen + move window (stdscr) + mvadd_wch window (stdscr) + mvadd_wchnstr window (stdscr) + mvadd_wchstr window (stdscr) + mvaddch window (stdscr) + mvaddchnstr window (stdscr) + mvaddchstr window (stdscr) + mvaddnstr window (stdscr) + mvaddnwstr 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) + mvgetn_wstr screen (input-operation) + mvgetnstr screen (input-operation) + mvgetstr screen (input-operation) + mvhline window (stdscr) + mvhline_set window (stdscr) + mvin_wch window (stdscr) + mvin_wchnstr window (stdscr) + mvin_wchstr window (stdscr) + mvinch window (stdscr) + mvinchnstr window (stdscr) + mvinchstr window (stdscr) + mvinnstr window (stdscr) + mvinnwstr window (stdscr) + mvins_nwstr window (stdscr) + mvins_wch window (stdscr) + mvins_wstr window (stdscr) + mvinsch window (stdscr) + mvinsnstr window (stdscr) + mvinsstr window (stdscr) + mvinstr window (stdscr) + mvinwstr window (stdscr) + mvprintw window (stdscr) + mvscanw screen + mvvline window (stdscr) + mvvline_set window (stdscr) + mvwadd_wch window + mvwadd_wchnstr window + mvwadd_wchstr window + mvwaddch window + mvwaddchnstr window + mvwaddchstr window + mvwaddnstr window + mvwaddnwstr window + mvwaddstr window + mvwaddwstr window + mvwchgat window + mvwdelch window + mvwget_wch screen (input-operation) + mvwget_wstr screen (input-operation) + mvwgetch screen (input-operation) + mvwgetn_wstr screen (input-operation) + mvwgetnstr screen (input-operation) + mvwgetstr screen (input-operation) + mvwhline window + mvwhline_set window + mvwin window + mvwin_wch window + mvwin_wchnstr window + mvwin_wchstr window + mvwinch window + mvwinchnstr window + mvwinchstr window + mvwinnstr window + mvwinnwstr window + mvwins_nwstr window + mvwins_wch window + mvwins_wstr window + mvwinsch window + mvwinsnstr window + mvwinsstr window + + mvwinstr window + mvwinwstr window + mvwprintw window + mvwscanw screen + mvwvline window + mvwvline_set window + napms reentrant + newpad global locks(windowlist) + newscr screen (readonly) + newterm global locks(screenlist) + newwin global locks(windowlist) + nl screen + nocbreak screen + nodelay window + noecho screen + nofilter global + nonl screen + noqiflush terminal + noraw screen + notimeout window + numcodes global (readonly) + numfnames global (readonly) + numnames global (readonly) + ospeed global + overlay window locks(source, target) + overwrite window locks(source, target) + pair_content screen + pecho_wchar screen + pechochar screen + pnoutrefresh screen + prefresh screen + printw window + putp global + putwin window + qiflush terminal + raw screen + redrawwin window + refresh screen + reset_prog_mode screen + reset_shell_mode screen + resetty terminal + resize_term screen locks(windowlist) + resizeterm screen + restartterm screen + ripoffline global (static data) + savetty terminal + scanw screen + scr_dump screen + scr_init screen + scr_restore screen + scr_set screen + scrl window (stdscr) + scroll window + scrollok window + set_curterm screen + set_escdelay screen + set_tabsize screen + set_term global locks(screenlist, screen) + setcchar reentrant + setscrreg window (stdscr) + setupterm global + slk_attr screen + slk_attr_off screen + 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 + slk_noutrefresh screen + slk_refresh screen + slk_restore screen + slk_set screen + slk_touch screen + slk_wset screen + standend window + standout window + start_color screen + stdscr screen (readonly) + strcodes global (readonly) + strfnames global (readonly) + strnames global (readonly) + subpad window + subwin window + syncok window + term_attrs screen + termattrs screen + termname terminal + tgetent global + tgetflag global + tgetnum global + tgetstr global + tgoto global + tigetflag terminal + tigetnum terminal + tigetstr terminal + timeout window (stdscr) + touchline window + touchwin window + tparm global (static data) + tputs screen + trace global (static data) + ttytype screen (readonly) + typeahead screen + unctrl screen + unget_wch screen (input-operation) + ungetch screen (input-operation) + ungetmouse screen (input-operation) + untouchwin window + use_default_colors screen + use_env global (static data) + use_extended_names global (static data) + use_legacy_coding screen + use_screen global locks(screenlist, screen) + use_window global locks(windowlist, window) + vid_attr screen + vid_puts screen + vidattr screen + vidputs screen + vline window (stdscr) + vline_set window (stdscr) + vw_printw window + vw_scanw screen + vwprintw window + vwscanw screen + wadd_wch window + wadd_wchnstr window + wadd_wchstr window + waddch window + + waddchnstr window + waddchstr window + waddnstr window + waddnwstr window + waddstr window + waddwstr window + wattr_get window + wattr_off window + wattr_on window + wattr_set window + wattroff window + wattron window + wattrset window + wbkgd window + wbkgdset window + wbkgrnd window + wbkgrndset window + wborder window + wborder_set window + wchgat window + wclear window + wclrtobot window + wclrtoeol window + wcolor_set window + wcursyncup screen (affects window plus parents) + wdelch window + wdeleteln window + wecho_wchar window + wechochar window + wenclose window + werase window + wget_wch screen (input-operation) + wget_wstr screen (input-operation) + wgetbkgrnd window + wgetch screen (input-operation) + wgetn_wstr screen (input-operation) + wgetnstr screen (input-operation) + wgetparent window + wgetscrreg window + wgetstr screen (input-operation) + whline window + whline_set window + win_wch window + win_wchnstr window + win_wchstr window + winch window + winchnstr window + winchstr window + winnstr window + winnwstr window + wins_nwstr window + wins_wch window + wins_wstr window + winsch window + winsdelln window + winsertln window + winsnstr window + winsstr window + winstr window + winwstr window + wmouse_trafo window + wmove window + wnoutrefresh screen + wprintw window + wredrawln window + wrefresh screen + + wresize window locks(windowlist) + wscanw screen + wscrl window + wsetscrreg window + wstandend window + wstandout window + wsyncdown screen (affects window plus parents) + wsyncup screen (affects window plus parents) + wtimeout window + wtouchln window + wunctrl global (static data) + wvline window + wvline_set window + + +</PRE> +<H2>RETURN VALUE</H2><PRE> + These functions all return TRUE or FALSE, except as noted. + + +</PRE> +<H2>NOTES</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- + 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>, <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> +</BODY> +</HTML> |