diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-11-04 02:19:25 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:27 -0500 |
commit | a9c00f35f9d7d59b36c286abb2e72613b32ba775 (patch) | |
tree | 1d17cc33d6d2ed303e915d1be52186f5f4c1bc18 /source4/smbd | |
parent | f7a13be68d56ef0937c766026fe0dbe684f35c41 (diff) | |
download | samba-a9c00f35f9d7d59b36c286abb2e72613b32ba775.tar.gz samba-a9c00f35f9d7d59b36c286abb2e72613b32ba775.tar.bz2 samba-a9c00f35f9d7d59b36c286abb2e72613b32ba775.zip |
r3518: fixed some includes to be consistent.
- use #include <XXX.h> for operating system includes
- use includes relative to include/ for things like system/wait.h
also fixed the thread backend to work somewhat. To fix it properly we need to do this:
- add a configure test for support for thread local storage (the __thread keyword)
- refuse to do pthreads if tls doesn't work
- refuse to do pthreads if seteuid() affects process instead of thread
- defined THREAD_LOCAL as __thread when WITH_PTHREADS
- add THREAD_LOCAL to all the global data structures that should be
thread local (there are quite a few)
right now the thread backend falls over when you hit it with several
connections at once, due to the lack of __thread on some critical
structures.
(This used to be commit 0dc1deabd0b53bc7a6f6cee2ed99e2cbbe422262)
Diffstat (limited to 'source4/smbd')
-rw-r--r-- | source4/smbd/process_thread.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c index da3af9202a..0eead7f33c 100644 --- a/source4/smbd/process_thread.c +++ b/source4/smbd/process_thread.c @@ -21,15 +21,15 @@ */ #include "includes.h" +#include <pthread.h> +#ifdef HAVE_BACKTRACE +#include <execinfo.h> +#endif +#include "system/wait.h" #include "events.h" #include "dlinklist.h" #include "smb_server/smb_server.h" #include "process_model.h" -#include "include/system/wait.h" -#include "pthread.h" -#ifdef HAVE_BACKTRACE -#include "execinfo.h" -#endif static void *thread_connection_fn(void *thread_parm) { @@ -65,8 +65,6 @@ static void thread_accept_connection(struct event_context *ev, struct fd_event * /* accept an incoming connection. */ status = socket_accept(server_socket->socket, &sock); if (!NT_STATUS_IS_OK(status)) { - DEBUG(0,("accept_connection_single: accept: %s\n", - nt_errstr(status))); return; } @@ -79,14 +77,12 @@ static void thread_accept_connection(struct event_context *ev, struct fd_event * ev = event_context_init(server_socket); if (!ev) { - DEBUG(0,("thread_accept_connection: failed to create event_context!\n")); socket_destroy(sock); return; } conn = server_setup_connection(ev, server_socket, sock, t, pthread_self()); if (!conn) { - DEBUG(0,("server_setup_connection(ev, server_socket, sock, t) failed\n")); event_context_destroy(ev); socket_destroy(sock); return; @@ -120,7 +116,7 @@ static void thread_accept_connection(struct event_context *ev, struct fd_event * /* called when a SMB connection goes down */ static void thread_terminate_connection(struct server_connection *conn, const char *reason) { - DEBUG(0,("thread_terminate_connection: reason[%s]\n",reason)); + DEBUG(10,("thread_terminate_connection: reason[%s]\n",reason)); if (conn) { talloc_free(conn); |