summaryrefslogtreecommitdiff
path: root/source4/smbd/process_thread.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-02-04 17:59:16 +1100
committerAndrew Bartlett <abartlet@samba.org>2008-02-04 17:59:16 +1100
commitb3c5fbec47739ee2bb26f900d1f564a36dc3ad82 (patch)
tree6cbde07fd634a515b2f7fece08f36abc13b4be3d /source4/smbd/process_thread.c
parent3d5594e74da375a47cf15514926803352d256ca3 (diff)
downloadsamba-b3c5fbec47739ee2bb26f900d1f564a36dc3ad82.tar.gz
samba-b3c5fbec47739ee2bb26f900d1f564a36dc3ad82.tar.bz2
samba-b3c5fbec47739ee2bb26f900d1f564a36dc3ad82.zip
Remaining changes to implement the prefork process model
To use, run 'smbd -M prefork' By default, only the smb service is preforked. 4 children are created, and all listen for new connections. The Linux Kernel 'wake one' behaviour should ensure that only one is given the oportunity to accept. We need to look into the ideal number of worker children, as well as load balancing behaviours. To change, set: prefork children : smb = 6 valid service names (smb in this example) match those in 'server services'. Andrew Bartlett and David Disseldorp (This used to be commit 35313c0aa3fbfdd943edfb7bafd7645b1a0c54e9)
Diffstat (limited to 'source4/smbd/process_thread.c')
-rw-r--r--source4/smbd/process_thread.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c
index 6c5f4816c0..5a45cdfeac 100644
--- a/source4/smbd/process_thread.c
+++ b/source4/smbd/process_thread.c
@@ -148,6 +148,7 @@ static void *thread_task_fn(void *thread_parm)
*/
static void thread_new_task(struct event_context *ev,
struct loadparm_context *lp_ctx,
+ const char *service_name,
void (*new_task)(struct event_context *,
struct loadparm_context *,
uint32_t , void *),
@@ -178,10 +179,10 @@ static void thread_new_task(struct event_context *ev,
rc = pthread_create(&thread_id, &thread_attr, thread_task_fn, state);
pthread_attr_destroy(&thread_attr);
if (rc == 0) {
- DEBUG(4,("thread_new_task: created thread_id=%lu\n",
- (unsigned long int)thread_id));
+ DEBUG(4,("thread_new_task: created %s thread_id=%lu\n",
+ service_name, (unsigned long int)thread_id));
} else {
- DEBUG(0,("thread_new_task: thread create failed rc=%d\n", rc));
+ DEBUG(0,("thread_new_task: thread create for %s failed rc=%d\n", service_name, rc));
talloc_free(ev2);
}
}