 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Bottom of page |
|
tttk_block_while(3)
CDE
NAME
tttk_block_while - block while a counter is greater than zero
SYNOPSIS
#include <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 asynchronous 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 milliseconds, 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.
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
application 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). poll in the
X/Open CAE Specification, X/Open System Interfaces and Headers, Issue 4,
Version 2; XtAppPending, XtAppAddTimeOut, XtAppNextEvent, XtDispatchEvent
in the X/Open CAE Specification, X/Open Window Management: X Toolkit
Intrinsics
 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Top of page |
|