Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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

tttk_block_while(3)           ToolTalk 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 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,  pro-
       cesses  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 inter-
       face controls that the user should not operate while the application is
       waiting for tttk_block_while() to return.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/tooltalk |
       +---------------+------------------+
       |Stability      | Committed        |
       +---------------+------------------+

SEE ALSO
       tttk(5), tttk_Xt_input_handler(3); poll(2), XtAppPending(3X), XtAppAd-
       dTimeOut(3X), XtAppNextEvent(3X), XtDispatchEvent(3X).




ToolTalk 1.3                     1 March 1996              tttk_block_while(3)