diff options
author | Gerd Moellmann <gerd@gnu.org> | 2000-01-25 15:59:42 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2000-01-25 15:59:42 +0000 |
commit | e12489f9ab542b1c83f7ac9cca05fd21a37d4080 (patch) | |
tree | 00c6ea7ebb1304ae931820f446080ade2e8cb1cf /src/atimer.h | |
parent | ffdcc91d6d1ff97044d230b9684d3d732cb1c3a2 (diff) | |
download | emacs-e12489f9ab542b1c83f7ac9cca05fd21a37d4080.tar.gz emacs-e12489f9ab542b1c83f7ac9cca05fd21a37d4080.tar.bz2 emacs-e12489f9ab542b1c83f7ac9cca05fd21a37d4080.zip |
*** empty log message ***
Diffstat (limited to 'src/atimer.h')
-rw-r--r-- | src/atimer.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/atimer.h b/src/atimer.h new file mode 100644 index 00000000000..9a5b7ef3107 --- /dev/null +++ b/src/atimer.h @@ -0,0 +1,75 @@ +/* Asynchronous timers. + Copyright (C) 2000 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Forward declaration. */ + +struct atimer; + +/* Types of timers. */ + +enum atimer_type +{ + /* Timer is ripe at some absolute time. */ + ATIMER_ABSOLUTE, + + /* Timer is ripe at now plus an offset. */ + ATIMER_RELATIVE, + + /* Timer runs continously. */ + ATIMER_CONTINUOUS +}; + +/* Type of timer callback functions. */ + +typedef void (* atimer_callback) P_ ((struct atimer *timer)); + +/* Structure describing an asynchronous timer. */ + +struct atimer +{ + /* The type of this timer. */ + enum atimer_type type; + + /* Time when this timer is ripe. */ + EMACS_TIME expiration; + + /* Interval of this timer. */ + EMACS_TIME interval; + + /* Function to call when timer is ripe. Interupt input is + garanteed to not be blocked when this function is called. */ + atimer_callback fn; + + /* Additional user-specified data to pass to FN. */ + void *client_data; + + /* Next in list of active or free atimers. */ + struct atimer *next; +}; + +/* Function prototypes. */ + +struct atimer *start_atimer P_ ((enum atimer_type, EMACS_TIME, + atimer_callback, void *)); +void cancel_atimer P_ ((struct atimer *)); +void do_pending_atimers P_ ((void)); +void init_atimer P_ ((void)); +void turn_on_atimers P_ ((int)); + |