summaryrefslogtreecommitdiff
path: root/source4/include/events.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-11-03 10:09:48 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:23 -0500
commitdde07058075d357cfdc63624c8dcaa67ebd40add (patch)
treec3f29090e37f1bc103a3d6051e708d1ebbe305a5 /source4/include/events.h
parent90a8c4acc7e673e6439197776d19cc4b095ac322 (diff)
downloadsamba-dde07058075d357cfdc63624c8dcaa67ebd40add.tar.gz
samba-dde07058075d357cfdc63624c8dcaa67ebd40add.tar.bz2
samba-dde07058075d357cfdc63624c8dcaa67ebd40add.zip
r3507: - added deferred replies on sharing violation in pvfs open. The
deferred reply is short-circuited immediately when the file is closed by another user, allowing it to be opened by the waiting user. - added a sane set of timeval manipulation routines - converted all the events code and code that uses it to use struct timeval instead of time_t, which allows for microsecond resolution instead of 1 second resolution. This was needed for doing the pvfs deferred open code, and is why the patch is so big. (This used to be commit 0d51511d408d91eb5f68a35e980e0875299b1831)
Diffstat (limited to 'source4/include/events.h')
-rw-r--r--source4/include/events.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/source4/include/events.h b/source4/include/events.h
index c44acc77ae..36fedc6e8b 100644
--- a/source4/include/events.h
+++ b/source4/include/events.h
@@ -28,7 +28,8 @@ struct event_context {
struct fd_event *next, *prev;
int fd;
uint16_t flags; /* see EVENT_FD_* flags */
- void (*handler)(struct event_context *ev, struct fd_event *fde, time_t t, uint16_t flags);
+ void (*handler)(struct event_context *ev, struct fd_event *fde,
+ struct timeval t, uint16_t flags);
void *private;
int ref_count;
} *fd_events;
@@ -36,8 +37,9 @@ struct event_context {
/* list of timed events */
struct timed_event {
struct timed_event *next, *prev;
- time_t next_event;
- void (*handler)(struct event_context *ev, struct timed_event *te, time_t t);
+ struct timeval next_event;
+ void (*handler)(struct event_context *ev, struct timed_event *te,
+ struct timeval t);
void *private;
int ref_count;
} *timed_events;
@@ -45,7 +47,8 @@ struct event_context {
/* list of loop events - called on each select() */
struct loop_event {
struct loop_event *next, *prev;
- void (*handler)(struct event_context *ev, struct loop_event *le, time_t t);
+ void (*handler)(struct event_context *ev, struct loop_event *le,
+ struct timeval t);
void *private;
int ref_count;
} *loop_events;