Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 8
Add a waitfor action to a condition
#include <ha/ham.h>
ham_action_t *ham_action_waitfor(
ham_condition_t *chdl,
const char *aname,
const char *path,
int delay,
unsigned flags);
libham
The ham_action_waitfor() function adds an action
(aname) to a given condition. In this case, the
action is one that lets you insert arbitrary delays into a
sequence of actions.
The waitfor call fails if the specified path does not appear in the specified interval.
The handle (chdl) is obtained either:
- from one of the ham_condition*() functions to add conditions
or:
- by calling any of the ham_condition_handle() functions
to request a handle to a specific condition.
You use the delay parameter to specify the
“waitfor” period in milliseconds.
You can also specify a path in order to control
the delay. If path is specified, then the action
waits for either the pathname to appear in the namespace or
for the period specified in delay, whichever is
lower.
Currently the following flag is defined:
- HREARMAFTERRESTART
- Indicates that the action is to be automatically rearmed
after the entity that it belongs to is restarted. By
default, this flag is disabled — actions automatically
get pruned across restarts of the entity. Note that if the
condition that this action belongs to is pruned after a
restart, this action will also be removed, regardless of the
value of this flag.
A valid handle to an action to a condition, or NULL if an error
occurred (errno is set).
- EBADF
- Couldn't connect to the HAM.
- EINVAL
- The name given in aname is invalid (e.g. it
contains the “/” character) or is NULL.
The connection to the HAM is invalid. This happens when the
process that opened the connection (using ham_connect())
and the process that's calling ham_action_waitfor() aren't the same.
The delay specified is invalid. Only values greater than
zero are permitted.
The condition into which the action is being added has the
HCONDNOWAIT set.
- EEXIST
- The name provided for the action already exists.
- ENAMETOOLONG
- The name given (in aname) is too long, i.e.
it exceeds _POSIX_PATH_MAX (defined in <limits.h>).
Note that the combined length of an entity/condition/action
name is also limited by _POSIX_PATH_MAX.
- ENOENT
- There's no entity or condition specified by the given
handle (chdl).
- ENOMEM
- Not enough memory to create a new handle.
In addition to the above errors, the HAM returns any error
it encounters while servicing this request.
QNX Neutrino
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |
ham_action_execute(),
ham_action_notify_pulse(),
ham_action_notify_signal(),
ham_action_remove(),
ham_action_restart(),
ham_condition(),
ham_condition_handle()
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 189
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_action_waitfor.html on line 189