* bsd_helper.cc (securityinit): New function. Move initialization
of security related variables from ipcinit here. * bsd_helper.h (securityinit): Add prototype. * cygserver.cc (main): Call securityinit right after wincap.init. * process.cc (process_cache::process): Fix maximum process condition. * README: Add description for new -p/--process-cache option. * bsd_helper.cc (default_tun_check): Add kern.srv.process_cache_size entry to tunable_params. Set max value of kern.srv.request_threads to 310. * cygserver.cc (SERVER_VERSION): Set to 1.20. (print_usage): Print usage of new parameter -p. (main): Add process cache parameter handling. Accomodate new max value of request threads. * cygserver.conf: Add kern.srv.process_cache_size tunable parameter. Accomodate new max value of kern.srv.request_threads. * process.cc: Fix a comment. (process_cache::process_cache): Add max process cache size parameter. Change _cache_add_trigger to manual reset event. (struct pcache_wait_t): New struct used as parameter to pcache_wait_thread. (pcache_wait_thread): New thread function used for threaded process cache. (process_cache::wait_for_processes): Use threaded waiting if number of processes to wait for is bigger than 62. Always check all processes to avoid race under heavy load. (process_cache::sync_wait_array): Remove useless assert. Reset _cache_add_trigger right at the start since it's manual reset now. Accomodate threaded waiting. * process.h (process_cache::process_cache): Add max_procs parameter. (process_cache::_max_process_count): New member. (process_cache::_wait_array: Raise to allow up to 5 wait threads. (process_cache::_process_array): Ditto.
This commit is contained in:
@ -248,6 +248,14 @@ SECURITY_ATTRIBUTES sec_all_nih = { sizeof (SECURITY_ATTRIBUTES),
|
||||
&sec_all_nih_sd,
|
||||
FALSE };
|
||||
|
||||
void
|
||||
securityinit ()
|
||||
{
|
||||
InitializeSecurityDescriptor (&sec_all_nih_sd, SECURITY_DESCRIPTOR_REVISION);
|
||||
SetSecurityDescriptorDacl (&sec_all_nih_sd, TRUE, 0, FALSE);
|
||||
init_admin_sid ();
|
||||
}
|
||||
|
||||
/* Global vars, determining whether the IPC stuff should be started or not. */
|
||||
tun_bool_t support_sharedmem = TUN_UNDEF;
|
||||
tun_bool_t support_msgqueues = TUN_UNDEF;
|
||||
@ -256,10 +264,6 @@ tun_bool_t support_semaphores = TUN_UNDEF;
|
||||
void
|
||||
ipcinit ()
|
||||
{
|
||||
InitializeSecurityDescriptor (&sec_all_nih_sd, SECURITY_DESCRIPTOR_REVISION);
|
||||
SetSecurityDescriptorDacl (&sec_all_nih_sd, TRUE, 0, FALSE);
|
||||
|
||||
init_admin_sid ();
|
||||
mtx_init (&Giant, "Giant", NULL, MTX_DEF);
|
||||
msleep_init ();
|
||||
ipcexit_event = CreateEvent (NULL, TRUE, FALSE, NULL);
|
||||
@ -553,8 +557,9 @@ default_tun_check (tun_struct *that, char *value, const char *fname)
|
||||
static tun_struct tunable_params[] =
|
||||
{
|
||||
/* SRV */
|
||||
{ "kern.srv.cleanup_threads", TUN_INT, {0}, {1}, {16}, default_tun_check},
|
||||
{ "kern.srv.request_threads", TUN_INT, {0}, {1}, {64}, default_tun_check},
|
||||
{ "kern.srv.cleanup_threads", TUN_INT, {0}, {1}, {32}, default_tun_check},
|
||||
{ "kern.srv.request_threads", TUN_INT, {0}, {1}, {310}, default_tun_check},
|
||||
{ "kern.srv.process_cache_size", TUN_INT, {0}, {1}, {310}, default_tun_check},
|
||||
{ "kern.srv.sharedmem", TUN_BOOL, {TUN_UNDEF}, {TUN_FALSE}, {TUN_TRUE}, default_tun_check},
|
||||
{ "kern.srv.msgqueues", TUN_BOOL, {TUN_UNDEF}, {TUN_FALSE}, {TUN_TRUE}, default_tun_check},
|
||||
{ "kern.srv.semaphores", TUN_BOOL, {TUN_UNDEF}, {TUN_FALSE}, {TUN_TRUE}, default_tun_check},
|
||||
|
Reference in New Issue
Block a user