diff options
author | cl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk> | 2005-07-26 15:20:09 +0000 |
---|---|---|
committer | cl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk> | 2005-07-26 15:20:09 +0000 |
commit | ef071736546681facfdc36617632bdafd6c4d4a4 (patch) | |
tree | 49b258982283aa0aa0b9017834b6dbffa92b4927 /tools/xenstore/xenstored_core.h | |
parent | e04c630cb24b65d871f061074bea23174cadf841 (diff) | |
download | xen-ef071736546681facfdc36617632bdafd6c4d4a4.tar.gz xen-ef071736546681facfdc36617632bdafd6c4d4a4.tar.bz2 xen-ef071736546681facfdc36617632bdafd6c4d4a4.zip |
Change watches: operations block until everyone has acked.
Watch events are no longer sent to self
Watches no longer take a priority
async and asyncwait commands for xs_test, now we need to continue
despite blocking ops.
Print test name at end of verbose run on failure.
Use --trace-file arg to xenstored when testing
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Diffstat (limited to 'tools/xenstore/xenstored_core.h')
-rw-r--r-- | tools/xenstore/xenstored_core.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/xenstore/xenstored_core.h b/tools/xenstore/xenstored_core.h index 75a9bfe0a6..61d47b5342 100644 --- a/tools/xenstore/xenstored_core.h +++ b/tools/xenstore/xenstored_core.h @@ -51,6 +51,8 @@ enum state { /* Blocked by transaction. */ BLOCKED, + /* Waiting for watchers to ack event we caused */ + WATCHED, /* Completed */ OK, }; @@ -71,6 +73,12 @@ struct connection /* Node we are waiting for (if state == BLOCKED) */ char *blocked_by; + /* Are we waiting for watches to be acked from an event we caused? */ + unsigned int watches_unacked; + + /* Type of ack to send once watches fired. */ + enum xsd_sockmsg_type watch_ack; + /* Is this a read-only connection? */ bool can_write; @@ -92,10 +100,14 @@ struct connection /* The domain I'm associated with, if any. */ struct domain *domain; + /* My watches. */ + struct list_head watches; + /* Methods for communicating over this connection: write can be NULL */ connwritefn_t *write; connreadfn_t *read; }; +extern struct list_head connections; /* Return length of string (including nul) at this offset. */ unsigned int get_string(const struct buffered_data *data, |