diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-12-04 09:52:14 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-12-04 09:52:14 +0000 |
commit | 2e5ae6f0650962db86fcdb1290f9a7c8b07b1410 (patch) | |
tree | 0bb87301b126dc2a0da21335a8de9ea8dc27ba28 | |
parent | 926240428c0646aabb13539745940b61a7cf44a9 (diff) | |
download | samba-2e5ae6f0650962db86fcdb1290f9a7c8b07b1410.tar.gz samba-2e5ae6f0650962db86fcdb1290f9a7c8b07b1410.tar.bz2 samba-2e5ae6f0650962db86fcdb1290f9a7c8b07b1410.zip |
* added a debug thread id hook from jim myers
* change to select() from sys_select() in events.c, as sys_select() is
not thread safe. We need a new unified signal handling scheme for
Samba4, but for now just use select()
(This used to be commit 126fcd4a76ac029ee4f662ed41b84c791406c324)
-rw-r--r-- | source4/include/debug.h | 3 | ||||
-rw-r--r-- | source4/lib/debug.c | 8 | ||||
-rw-r--r-- | source4/lib/events.c | 8 |
3 files changed, 18 insertions, 1 deletions
diff --git a/source4/include/debug.h b/source4/include/debug.h index 814a79a44b..8c82c73557 100644 --- a/source4/include/debug.h +++ b/source4/include/debug.h @@ -30,6 +30,9 @@ struct debug_ops { /* function to return process/thread id */ uint32 (*get_task_id)(void); + + /* function to log process/thread id */ + void (*log_task_id)(int fd); }; void do_debug(const char *, ...) PRINTF_ATTRIBUTE(1,2); diff --git a/source4/lib/debug.c b/source4/lib/debug.c index 792cf14c5a..dbd3946c81 100644 --- a/source4/lib/debug.c +++ b/source4/lib/debug.c @@ -57,6 +57,8 @@ void do_debug(const char *format, ...) vasprintf(&s, format, ap); va_end(ap); + log_task_id(); + write(state.fd, s, strlen(s)); free(s); } @@ -147,6 +149,12 @@ uint32 get_task_id(void) return getpid(); } +void log_task_id(void) +{ + if (debug_handlers.ops.log_task_id) { + debug_handlers.ops.log_task_id(state.fd); + } +} /* register a set of debug handlers. */ diff --git a/source4/lib/events.c b/source4/lib/events.c index f95028b731..00d32043f7 100644 --- a/source4/lib/events.c +++ b/source4/lib/events.c @@ -317,7 +317,13 @@ int event_loop_wait(struct event_context *ev) } - selrtn = sys_select(ev->maxfd+1, &r_fds, &w_fds, NULL, &tval); + /* TODO: + + we don't use sys_select() as it isn't thread + safe. We need to replace the magic pipe handling in + sys_select() with something in the events + structure - for now just use select() */ + selrtn = select(ev->maxfd+1, &r_fds, &w_fds, NULL, &tval); t = time(NULL); |