tttk_block_while(3)
tttk_block_while(3) C LIBRARY FUNCTIONS tttk_block_while(3)
NAME
tttk_block_while - block while a counter is greater than
zero
SYNOPSIS
#include <Tt/tttk.h>
Tt_status tttk_block_while(XtAppContext app2run,
const int *blocked,
int ms_timeout);
DESCRIPTION
The tttk_block_while() function is used to process asynchro-
nous events, such as ToolTalk messages or window system
events, while waiting for a condition or timeout.
If app2run is not zero, then an event loop is run for that
application context, by repeatedly calling
XtAppProcessEvent(3X) with ms_timeout being effected using
XtAppAddTimeOut(3X). If app2run is zero, then the file
descriptor (as returned by tt_fd(3)) of the default procid
is polled (using the poll(2) function) and
tttk_Xt_input_handler(3) is called whenever the file
descriptor is active.
If blocked is zero, then tttk_block_while() runs until
ms_timeout occurs. If blocked is non-zero, then the loop is
run until either ms_timeout occurs, or *blocked is less than
1.
If ms_timeout is zero, tttk_block_while() checks once for
events, processes the first one, and then returns. If
ms_timeout is negative, no timeout is in effect.
RETURN VALUE
Upon successful completion, the tttk_block_while() function
returns the status of the operation as one of the following
Tt_status values:
TT_OK The operation completed successfully.
TT_DESKTOP_ETIMEDOUT
The timeout occurred within ms_timeout mil-
liseconds, or ms_timeout was zero and no input
was available.
TT_DESKTOP_EINTR
The app2run argument was zero, and poll(2) was
interrupted by a signal.
TT_DESKTOP_EAGAIN
The app2run argument was zero, and poll(2)
returned EAGAIN.
Unix System LaboratorLast change: 11 May 1994 1
tttk_block_while(3) C LIBRARY FUNCTIONS tttk_block_while(3)
If app2run is not zero and ms_timeout is negative, then
tttk_block_while() will only return when *blocked is less
than 1, with TT_OK being returned.
If app2run is not zero, ms_timeout is negative, and blocked
is zero, then tttk_block_while() behaves equivalent to
XtAppMainLoop(3X), and will never return.
APPLICATION USAGE
If app2run is zero, then only messaging events for the
default procid will be serviced. Events for other procids
will be blocked, as will window system events, so that the
graphical user interface of the application will not update
itself even, for example, after expose events.
On the other hand, if the application passes its Xt context
in as app2run, then window system events will continue to be
handled, as will message activity for all procids for which
an XtAppAddInput(3X) has been done. Since the window system
event loop is fully operational in this case, the applica-
tion should take care to disable any user interface controls
that the user should not operate while the application is
waiting for tttk_block_while() to return.
SEE ALSO
Tttttk(5), tttk_Xt_input_handler(3); poll(2),
XtAppPending(3X), XtAppAddTimeOut(3X), XtAppNextEvent(3X),
XtDispatchEvent(3X).
Unix System LaboratorLast change: 11 May 1994 2
Man(1) output converted with
man2html