diff options
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix')
22 files changed, 0 insertions, 1670 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/proc.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/proc.o Binary files differdeleted file mode 100644 index 9a795914..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/proc.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/procsup.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/procsup.o Binary files differdeleted file mode 100644 index 03fb0822..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/procsup.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/signals.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/signals.o Binary files differdeleted file mode 100644 index 789e6422..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/signals.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/thread.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/thread.o Binary files differdeleted file mode 100644 index 211dc25d..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/thread.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/threadpriv.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/threadpriv.o Binary files differdeleted file mode 100644 index 5501d35c..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/.libs/threadpriv.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile deleted file mode 100644 index 858cde55..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -srcdir = . - - -TARGETS = \ - proc.lo \ - procsup.lo \ - thread.lo \ - threadpriv.lo \ - signals.lo - -# bring in rules.mk for standard functionality -include /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/build/apr_rules.mk - -INCDIR=../../include -DEFOSDIR=$(INCDIR)/arch/unix -INCLUDES=-I$(INCDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile.in deleted file mode 100644 index 42aa6d1b..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/Makefile.in +++ /dev/null @@ -1,18 +0,0 @@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -TARGETS = \ - proc.lo \ - procsup.lo \ - thread.lo \ - threadpriv.lo \ - signals.lo - -# bring in rules.mk for standard functionality -@INCLUDE_RULES@ - -INCDIR=../../include -DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ -INCLUDES=-I$(INCDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.c b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.c deleted file mode 100644 index 95e0bd21..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.c +++ /dev/null @@ -1,624 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr_arch_threadproc.h" -#include "apr_strings.h" -#include "apr_portable.h" -#include "apr_signal.h" - -APR_DECLARE(apr_status_t) apr_procattr_create(apr_procattr_t **new, - apr_pool_t *pool) -{ - (*new) = (apr_procattr_t *)apr_pcalloc(pool, sizeof(apr_procattr_t)); - - if ((*new) == NULL) { - return APR_ENOMEM; - } - (*new)->pool = pool; - (*new)->cmdtype = APR_PROGRAM; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_procattr_io_set(apr_procattr_t *attr, - apr_int32_t in, - apr_int32_t out, - apr_int32_t err) -{ - apr_status_t status; - if (in != 0) { - if ((status = apr_file_pipe_create(&attr->child_in, &attr->parent_in, - attr->pool)) != APR_SUCCESS) { - return status; - } - - switch (in) { - case APR_FULL_BLOCK: - break; - case APR_PARENT_BLOCK: - apr_file_pipe_timeout_set(attr->child_in, 0); - break; - case APR_CHILD_BLOCK: - apr_file_pipe_timeout_set(attr->parent_in, 0); - break; - default: - apr_file_pipe_timeout_set(attr->child_in, 0); - apr_file_pipe_timeout_set(attr->parent_in, 0); - } - } - - if (out) { - if ((status = apr_file_pipe_create(&attr->parent_out, &attr->child_out, - attr->pool)) != APR_SUCCESS) { - return status; - } - - switch (out) { - case APR_FULL_BLOCK: - break; - case APR_PARENT_BLOCK: - apr_file_pipe_timeout_set(attr->child_out, 0); - break; - case APR_CHILD_BLOCK: - apr_file_pipe_timeout_set(attr->parent_out, 0); - break; - default: - apr_file_pipe_timeout_set(attr->child_out, 0); - apr_file_pipe_timeout_set(attr->parent_out, 0); - } - } - - if (err) { - if ((status = apr_file_pipe_create(&attr->parent_err, &attr->child_err, - attr->pool)) != APR_SUCCESS) { - return status; - } - - switch (err) { - case APR_FULL_BLOCK: - break; - case APR_PARENT_BLOCK: - apr_file_pipe_timeout_set(attr->child_err, 0); - break; - case APR_CHILD_BLOCK: - apr_file_pipe_timeout_set(attr->parent_err, 0); - break; - default: - apr_file_pipe_timeout_set(attr->child_err, 0); - apr_file_pipe_timeout_set(attr->parent_err, 0); - } - } - - return APR_SUCCESS; -} - - -APR_DECLARE(apr_status_t) apr_procattr_child_in_set(apr_procattr_t *attr, - apr_file_t *child_in, - apr_file_t *parent_in) -{ - apr_status_t rv = APR_SUCCESS; - - if (attr->child_in == NULL && attr->parent_in == NULL) - rv = apr_file_pipe_create(&attr->child_in, &attr->parent_in, attr->pool); - - if (child_in != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->child_in, child_in, attr->pool); - - if (parent_in != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->parent_in, parent_in, attr->pool); - - return rv; -} - - -APR_DECLARE(apr_status_t) apr_procattr_child_out_set(apr_procattr_t *attr, - apr_file_t *child_out, - apr_file_t *parent_out) -{ - apr_status_t rv = APR_SUCCESS; - - if (attr->child_out == NULL && attr->parent_out == NULL) - rv = apr_file_pipe_create(&attr->child_out, &attr->parent_out, attr->pool); - - if (child_out != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->child_out, child_out, attr->pool); - - if (parent_out != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->parent_out, parent_out, attr->pool); - - return rv; -} - - -APR_DECLARE(apr_status_t) apr_procattr_child_err_set(apr_procattr_t *attr, - apr_file_t *child_err, - apr_file_t *parent_err) -{ - apr_status_t rv = APR_SUCCESS; - - if (attr->child_err == NULL && attr->parent_err == NULL) - rv = apr_file_pipe_create(&attr->child_err, &attr->parent_err, attr->pool); - - if (child_err != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->child_err, child_err, attr->pool); - - if (parent_err != NULL && rv == APR_SUCCESS) - rv = apr_file_dup2(attr->parent_err, parent_err, attr->pool); - - return rv; -} - - -APR_DECLARE(apr_status_t) apr_procattr_dir_set(apr_procattr_t *attr, - const char *dir) -{ - attr->currdir = apr_pstrdup(attr->pool, dir); - if (attr->currdir) { - return APR_SUCCESS; - } - - return APR_ENOMEM; -} - -APR_DECLARE(apr_status_t) apr_procattr_cmdtype_set(apr_procattr_t *attr, - apr_cmdtype_e cmd) -{ - attr->cmdtype = cmd; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_procattr_detach_set(apr_procattr_t *attr, - apr_int32_t detach) -{ - attr->detached = detach; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_proc_fork(apr_proc_t *proc, apr_pool_t *pool) -{ - int pid; - - if ((pid = fork()) < 0) { - return errno; - } - else if (pid == 0) { - proc->pid = pid; - proc->in = NULL; - proc->out = NULL; - proc->err = NULL; - - return APR_INCHILD; - } - - proc->pid = pid; - proc->in = NULL; - proc->out = NULL; - proc->err = NULL; - - return APR_INPARENT; -} - -static apr_status_t limit_proc(apr_procattr_t *attr) -{ -#if APR_HAVE_STRUCT_RLIMIT && APR_HAVE_SETRLIMIT -#ifdef RLIMIT_CPU - if (attr->limit_cpu != NULL) { - if ((setrlimit(RLIMIT_CPU, attr->limit_cpu)) != 0) { - return errno; - } - } -#endif -#ifdef RLIMIT_NPROC - if (attr->limit_nproc != NULL) { - if ((setrlimit(RLIMIT_NPROC, attr->limit_nproc)) != 0) { - return errno; - } - } -#endif -#ifdef RLIMIT_NOFILE - if (attr->limit_nofile != NULL) { - if ((setrlimit(RLIMIT_NOFILE, attr->limit_nofile)) != 0) { - return errno; - } - } -#endif -#if defined(RLIMIT_AS) - if (attr->limit_mem != NULL) { - if ((setrlimit(RLIMIT_AS, attr->limit_mem)) != 0) { - return errno; - } - } -#elif defined(RLIMIT_DATA) - if (attr->limit_mem != NULL) { - if ((setrlimit(RLIMIT_DATA, attr->limit_mem)) != 0) { - return errno; - } - } -#elif defined(RLIMIT_VMEM) - if (attr->limit_mem != NULL) { - if ((setrlimit(RLIMIT_VMEM, attr->limit_mem)) != 0) { - return errno; - } - } -#endif -#else - /* - * Maybe make a note in error_log that setrlimit isn't supported?? - */ - -#endif - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_procattr_child_errfn_set(apr_procattr_t *attr, - apr_child_errfn_t *errfn) -{ - attr->errfn = errfn; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_procattr_error_check_set(apr_procattr_t *attr, - apr_int32_t chk) -{ - attr->errchk = chk; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_procattr_addrspace_set(apr_procattr_t *attr, - apr_int32_t addrspace) -{ - /* won't ever be used on this platform, so don't save the flag */ - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_proc_create(apr_proc_t *new, - const char *progname, - const char * const *args, - const char * const *env, - apr_procattr_t *attr, - apr_pool_t *pool) -{ - int i; - const char * const empty_envp[] = {NULL}; - - if (!env) { /* Specs require an empty array instead of NULL; - * Purify will trigger a failure, even if many - * implementations don't. - */ - env = empty_envp; - } - - new->in = attr->parent_in; - new->err = attr->parent_err; - new->out = attr->parent_out; - - if (attr->errchk) { - if (attr->currdir) { - if (access(attr->currdir, X_OK) == -1) { - /* chdir() in child wouldn't have worked */ - return errno; - } - } - - if (attr->cmdtype == APR_PROGRAM || - attr->cmdtype == APR_PROGRAM_ENV || - *progname == '/') { - /* for both of these values of cmdtype, caller must pass - * full path, so it is easy to check; - * caller can choose to pass full path for other - * values of cmdtype - */ - if (access(progname, R_OK|X_OK) == -1) { - /* exec*() in child wouldn't have worked */ - return errno; - } - } - else { - /* todo: search PATH for progname then try to access it */ - } - } - - if ((new->pid = fork()) < 0) { - return errno; - } - else if (new->pid == 0) { - int status; - /* child process */ - - /* - * If we do exec cleanup before the dup2() calls to set up pipes - * on 0-2, we accidentally close the pipes used by programs like - * mod_cgid. - * - * If we do exec cleanup after the dup2() calls, cleanup can accidentally - * close our pipes which replaced any files which previously had - * descriptors 0-2. - * - * The solution is to kill the cleanup for the pipes, then do - * exec cleanup, then do the dup2() calls. - */ - - if (attr->child_in) { - apr_pool_cleanup_kill(apr_file_pool_get(attr->child_in), - attr->child_in, apr_unix_file_cleanup); - } - - if (attr->child_out) { - apr_pool_cleanup_kill(apr_file_pool_get(attr->child_out), - attr->child_out, apr_unix_file_cleanup); - } - - if (attr->child_err) { - apr_pool_cleanup_kill(apr_file_pool_get(attr->child_err), - attr->child_err, apr_unix_file_cleanup); - } - - apr_pool_cleanup_for_exec(); - - if (attr->child_in) { - apr_file_close(attr->parent_in); - dup2(attr->child_in->filedes, STDIN_FILENO); - apr_file_close(attr->child_in); - } - - if (attr->child_out) { - apr_file_close(attr->parent_out); - dup2(attr->child_out->filedes, STDOUT_FILENO); - apr_file_close(attr->child_out); - } - - if (attr->child_err) { - apr_file_close(attr->parent_err); - dup2(attr->child_err->filedes, STDERR_FILENO); - apr_file_close(attr->child_err); - } - - apr_signal(SIGCHLD, SIG_DFL); /* not sure if this is needed or not */ - - if (attr->currdir != NULL) { - if (chdir(attr->currdir) == -1) { - if (attr->errfn) { - attr->errfn(pool, errno, "change of working directory failed"); - } - exit(-1); /* We have big problems, the child should exit. */ - } - } - - if ((status = limit_proc(attr)) != APR_SUCCESS) { - if (attr->errfn) { - attr->errfn(pool, errno, "setting of resource limits failed"); - } - exit(-1); /* We have big problems, the child should exit. */ - } - - if (attr->cmdtype == APR_SHELLCMD || - attr->cmdtype == APR_SHELLCMD_ENV) { - int onearg_len = 0; - const char *newargs[4]; - - newargs[0] = SHELL_PATH; - newargs[1] = "-c"; - - i = 0; - while (args[i]) { - onearg_len += strlen(args[i]); - onearg_len++; /* for space delimiter */ - i++; - } - - switch(i) { - case 0: - /* bad parameters; we're doomed */ - break; - case 1: - /* no args, or caller already built a single string from - * progname and args - */ - newargs[2] = args[0]; - break; - default: - { - char *ch, *onearg; - - ch = onearg = apr_palloc(pool, onearg_len); - i = 0; - while (args[i]) { - size_t len = strlen(args[i]); - - memcpy(ch, args[i], len); - ch += len; - *ch = ' '; - ++ch; - ++i; - } - --ch; /* back up to trailing blank */ - *ch = '\0'; - newargs[2] = onearg; - } - } - - newargs[3] = NULL; - - if (attr->detached) { - apr_proc_detach(APR_PROC_DETACH_DAEMONIZE); - } - - if (attr->cmdtype == APR_SHELLCMD) { - execve(SHELL_PATH, (char * const *) newargs, (char * const *)env); - } - else { - execv(SHELL_PATH, (char * const *)newargs); - } - } - else if (attr->cmdtype == APR_PROGRAM) { - if (attr->detached) { - apr_proc_detach(APR_PROC_DETACH_DAEMONIZE); - } - - execve(progname, (char * const *)args, (char * const *)env); - } - else if (attr->cmdtype == APR_PROGRAM_ENV) { - if (attr->detached) { - apr_proc_detach(APR_PROC_DETACH_DAEMONIZE); - } - - execv(progname, (char * const *)args); - } - else { - /* APR_PROGRAM_PATH */ - if (attr->detached) { - apr_proc_detach(APR_PROC_DETACH_DAEMONIZE); - } - - execvp(progname, (char * const *)args); - } - if (attr->errfn) { - char *desc; - - desc = apr_psprintf(pool, "exec of '%s' failed", - progname); - attr->errfn(pool, errno, desc); - } - - exit(-1); /* if we get here, there is a problem, so exit with an - * error code. */ - } - - /* Parent process */ - if (attr->child_in) { - apr_file_close(attr->child_in); - } - - if (attr->child_out) { - apr_file_close(attr->child_out); - } - - if (attr->child_err) { - apr_file_close(attr->child_err); - } - - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc, - int *exitcode, - apr_exit_why_e *exitwhy, - apr_wait_how_e waithow, - apr_pool_t *p) -{ - proc->pid = -1; - return apr_proc_wait(proc, exitcode, exitwhy, waithow); -} - -APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc, - int *exitcode, apr_exit_why_e *exitwhy, - apr_wait_how_e waithow) -{ - pid_t pstatus; - int waitpid_options = WUNTRACED; - int exit_int; - int ignore; - apr_exit_why_e ignorewhy; - - if (exitcode == NULL) { - exitcode = &ignore; - } - - if (exitwhy == NULL) { - exitwhy = &ignorewhy; - } - - if (waithow != APR_WAIT) { - waitpid_options |= WNOHANG; - } - - do { - pstatus = waitpid(proc->pid, &exit_int, waitpid_options); - } while (pstatus < 0 && errno == EINTR); - - if (pstatus > 0) { - proc->pid = pstatus; - - if (WIFEXITED(exit_int)) { - *exitwhy = APR_PROC_EXIT; - *exitcode = WEXITSTATUS(exit_int); - } - else if (WIFSIGNALED(exit_int)) { - *exitwhy = APR_PROC_SIGNAL; - -#ifdef WCOREDUMP - if (WCOREDUMP(exit_int)) { - *exitwhy |= APR_PROC_SIGNAL_CORE; - } -#endif - - *exitcode = WTERMSIG(exit_int); - } - else { - /* unexpected condition */ - return APR_EGENERAL; - } - - return APR_CHILD_DONE; - } - else if (pstatus == 0) { - return APR_CHILD_NOTDONE; - } - - return errno; -} - -APR_DECLARE(apr_status_t) apr_procattr_limit_set(apr_procattr_t *attr, - apr_int32_t what, - struct rlimit *limit) -{ - switch(what) { - case APR_LIMIT_CPU: -#ifdef RLIMIT_CPU - attr->limit_cpu = limit; - break; -#else - return APR_ENOTIMPL; -#endif - - case APR_LIMIT_MEM: -#if defined (RLIMIT_DATA) || defined (RLIMIT_VMEM) || defined(RLIMIT_AS) - attr->limit_mem = limit; - break; -#else - return APR_ENOTIMPL; -#endif - - case APR_LIMIT_NPROC: -#ifdef RLIMIT_NPROC - attr->limit_nproc = limit; - break; -#else - return APR_ENOTIMPL; -#endif - - case APR_LIMIT_NOFILE: -#ifdef RLIMIT_NOFILE - attr->limit_nofile = limit; - break; -#else - return APR_ENOTIMPL; -#endif - - } - - return APR_SUCCESS; -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.lo b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.lo deleted file mode 100644 index 25a271a8..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.lo +++ /dev/null @@ -1,12 +0,0 @@ -# proc.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/proc.o' - -# Name of the non-PIC object. -non_pic_object='proc.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.o Binary files differdeleted file mode 100644 index ee7cc330..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/proc.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.c b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.c deleted file mode 100644 index e7b111bb..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr_arch_threadproc.h" - -APR_DECLARE(apr_status_t) apr_proc_detach(int daemonize) -{ - int x; - - chdir("/"); -#if !defined(MPE) && !defined(OS2) && !defined(TPF) && !defined(BEOS) - /* Don't detach for MPE because child processes can't survive the death of - * the parent. */ - if (daemonize) { - if ((x = fork()) > 0) { - exit(0); - } - else if (x == -1) { - perror("fork"); - fprintf(stderr, "unable to fork new process\n"); - exit(1); /* we can't do anything here, so just exit. */ - } - /* RAISE_SIGSTOP(DETACH); */ - } -#endif - -#ifdef HAVE_SETSID - /* A setsid() failure is not fatal if we didn't just fork(). - * The calling process may be the process group leader, in - * which case setsid() will fail with EPERM. - */ - if (setsid() == -1 && daemonize) { - return errno; - } -#elif defined(NEXT) || defined(NEWSOS) - if (setpgrp(0, getpid()) == -1) { - return errno; - } -#elif defined(OS2) || defined(TPF) || defined(MPE) - /* do nothing */ -#else - if (setpgid(0, 0) == -1) { - return errno; - } -#endif - - /* close out the standard file descriptors */ - if (freopen("/dev/null", "r", stdin) == NULL) { - return errno; - /* continue anyhow -- note we can't close out descriptor 0 because we - * have nothing to replace it with, and if we didn't have a descriptor - * 0 the next file would be created with that value ... leading to - * havoc. - */ - } - if (freopen("/dev/null", "w", stdout) == NULL) { - return errno; - } - /* We are going to reopen this again in a little while to the error - * log file, but better to do it twice and suffer a small performance - * hit for consistancy than not reopen it here. - */ - if (freopen("/dev/null", "w", stderr) == NULL) { - return errno; - } - return APR_SUCCESS; -} - -#if (!HAVE_WAITPID) -/* From ikluft@amdahl.com - * this is not ideal but it works for SVR3 variants - * Modified by dwd@bell-labs.com to call wait3 instead of wait because - * apache started to use the WNOHANG option. - */ -int waitpid(pid_t pid, int *statusp, int options) -{ - int tmp_pid; - if (kill(pid, 0) == -1) { - errno = ECHILD; - return -1; - } - while (((tmp_pid = wait3(statusp, options, 0)) != pid) && - (tmp_pid != -1) && (tmp_pid != 0) && (pid != -1)) - ; - return tmp_pid; -} -#endif - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.lo b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.lo deleted file mode 100644 index 97676e24..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.lo +++ /dev/null @@ -1,12 +0,0 @@ -# procsup.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/procsup.o' - -# Name of the non-PIC object. -non_pic_object='procsup.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.o Binary files differdeleted file mode 100644 index 1fb7b463..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/procsup.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.c b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.c deleted file mode 100644 index ac0997f0..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.c +++ /dev/null @@ -1,433 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define INCL_DOSEXCEPTIONS /* for OS2 */ -#include "apr_arch_threadproc.h" -#include "apr_private.h" -#include "apr_pools.h" -#include "apr_signal.h" -#include "apr_strings.h" - -#include <assert.h> -#if APR_HAS_THREADS && APR_HAVE_PTHREAD_H -#include <pthread.h> -#endif - -APR_DECLARE(apr_status_t) apr_proc_kill(apr_proc_t *proc, int signum) -{ -#ifdef OS2 - /* SIGTERM's don't work too well in OS/2 (only affects other EMX - * programs). CGIs may not be, esp. REXX scripts, so use a native - * call instead - */ - if (signum == SIGTERM) { - return APR_OS2_STATUS(DosSendSignalException(proc->pid, - XCPT_SIGNAL_BREAK)); - } -#endif /* OS2 */ - - if (kill(proc->pid, signum) == -1) { - return errno; - } - - return APR_SUCCESS; -} - - -#if APR_HAVE_SIGACTION - -#ifdef DARWIN -static void avoid_zombies(int signo) -{ - int exit_status; - - while (waitpid(-1, &exit_status, WNOHANG) > 0) { - /* do nothing */ - } -} -#endif /* DARWIN */ - -/* - * Replace standard signal() with the more reliable sigaction equivalent - * from W. Richard Stevens' "Advanced Programming in the UNIX Environment" - * (the version that does not automatically restart system calls). - */ -APR_DECLARE(apr_sigfunc_t *) apr_signal(int signo, apr_sigfunc_t * func) -{ - struct sigaction act, oact; - - act.sa_handler = func; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; -#ifdef SA_INTERRUPT /* SunOS */ - act.sa_flags |= SA_INTERRUPT; -#endif -#if defined(__osf__) && defined(__alpha) - /* XXX jeff thinks this should be enabled whenever SA_NOCLDWAIT is defined */ - - /* this is required on Tru64 to cause child processes to - * disappear gracefully - XPG4 compatible - */ - if ((signo == SIGCHLD) && (func == SIG_IGN)) { - act.sa_flags |= SA_NOCLDWAIT; - } -#endif -#ifdef DARWIN - /* ignoring SIGCHLD or leaving the default disposition doesn't avoid zombies, - * and there is no SA_NOCLDWAIT flag, so catch the signal and reap status in - * the handler to avoid zombies - */ - if ((signo == SIGCHLD) && (func == SIG_IGN)) { - act.sa_handler = avoid_zombies; - } -#endif - if (sigaction(signo, &act, &oact) < 0) - return SIG_ERR; - return oact.sa_handler; -} - -#endif /* HAVE_SIGACTION */ - -/* AC_DECL_SYS_SIGLIST defines either of these symbols depending - * on the version of autoconf used. */ -#if defined(SYS_SIGLIST_DECLARED) || HAVE_DECL_SYS_SIGLIST - -void apr_signal_init(apr_pool_t *pglobal) -{ -} -const char *apr_signal_description_get(int signum) -{ - return sys_siglist[signum]; -} - -#else /* !(SYS_SIGLIST_DECLARED || HAVE_DECL_SYS_SIGLIST) */ - -/* we need to roll our own signal description stuff */ - -#if defined(NSIG) -#define APR_NUMSIG NSIG -#elif defined(_NSIG) -#define APR_NUMSIG _NSIG -#elif defined(__NSIG) -#define APR_NUMSIG __NSIG -#else -#define APR_NUMSIG 33 /* breaks on OS/390 with < 33; 32 is o.k. for most */ -#endif - -static const char *signal_description[APR_NUMSIG]; - -#define store_desc(index, string) \ - do { \ - if (index >= APR_NUMSIG) { \ - assert(index < APR_NUMSIG); \ - } \ - else { \ - signal_description[index] = string; \ - } \ - } while (0) - -void apr_signal_init(apr_pool_t *pglobal) -{ - int sig; - - store_desc(0, "Signal 0"); - -#ifdef SIGHUP - store_desc(SIGHUP, "Hangup"); -#endif -#ifdef SIGINT - store_desc(SIGINT, "Interrupt"); -#endif -#ifdef SIGQUIT - store_desc(SIGQUIT, "Quit"); -#endif -#ifdef SIGILL - store_desc(SIGILL, "Illegal instruction"); -#endif -#ifdef SIGTRAP - store_desc(SIGTRAP, "Trace/BPT trap"); -#endif -#ifdef SIGIOT - store_desc(SIGIOT, "IOT instruction"); -#endif -#ifdef SIGABRT - store_desc(SIGABRT, "Abort"); -#endif -#ifdef SIGEMT - store_desc(SIGEMT, "Emulator trap"); -#endif -#ifdef SIGFPE - store_desc(SIGFPE, "Arithmetic exception"); -#endif -#ifdef SIGKILL - store_desc(SIGKILL, "Killed"); -#endif -#ifdef SIGBUS - store_desc(SIGBUS, "Bus error"); -#endif -#ifdef SIGSEGV - store_desc(SIGSEGV, "Segmentation fault"); -#endif -#ifdef SIGSYS - store_desc(SIGSYS, "Bad system call"); -#endif -#ifdef SIGPIPE - store_desc(SIGPIPE, "Broken pipe"); -#endif -#ifdef SIGALRM - store_desc(SIGALRM, "Alarm clock"); -#endif -#ifdef SIGTERM - store_desc(SIGTERM, "Terminated"); -#endif -#ifdef SIGUSR1 - store_desc(SIGUSR1, "User defined signal 1"); -#endif -#ifdef SIGUSR2 - store_desc(SIGUSR2, "User defined signal 2"); -#endif -#ifdef SIGCLD - store_desc(SIGCLD, "Child status change"); -#endif -#ifdef SIGCHLD - store_desc(SIGCHLD, "Child status change"); -#endif -#ifdef SIGPWR - store_desc(SIGPWR, "Power-fail restart"); -#endif -#ifdef SIGWINCH - store_desc(SIGWINCH, "Window changed"); -#endif -#ifdef SIGURG - store_desc(SIGURG, "urgent socket condition"); -#endif -#ifdef SIGPOLL - store_desc(SIGPOLL, "Pollable event occurred"); -#endif -#ifdef SIGIO - store_desc(SIGIO, "socket I/O possible"); -#endif -#ifdef SIGSTOP - store_desc(SIGSTOP, "Stopped (signal)"); -#endif -#ifdef SIGTSTP - store_desc(SIGTSTP, "Stopped"); -#endif -#ifdef SIGCONT - store_desc(SIGCONT, "Continued"); -#endif -#ifdef SIGTTIN - store_desc(SIGTTIN, "Stopped (tty input)"); -#endif -#ifdef SIGTTOU - store_desc(SIGTTOU, "Stopped (tty output)"); -#endif -#ifdef SIGVTALRM - store_desc(SIGVTALRM, "virtual timer expired"); -#endif -#ifdef SIGPROF - store_desc(SIGPROF, "profiling timer expired"); -#endif -#ifdef SIGXCPU - store_desc(SIGXCPU, "exceeded cpu limit"); -#endif -#ifdef SIGXFSZ - store_desc(SIGXFSZ, "exceeded file size limit"); -#endif - - for (sig = 0; sig < APR_NUMSIG; ++sig) - if (signal_description[sig] == NULL) - signal_description[sig] = apr_psprintf(pglobal, "signal #%d", sig); -} - -const char *apr_signal_description_get(int signum) -{ - return - signum < APR_NUMSIG - ? signal_description[signum] - : "unknown signal (number)"; -} - -#endif /* SYS_SIGLIST_DECLARED || HAVE_DECL_SYS_SIGLIST */ - -#if APR_HAS_THREADS && (HAVE_SIGSUSPEND || APR_HAVE_SIGWAIT) && !defined(OS2) - -static void remove_sync_sigs(sigset_t *sig_mask) -{ -#ifdef SIGABRT - sigdelset(sig_mask, SIGABRT); -#endif -#ifdef SIGBUS - sigdelset(sig_mask, SIGBUS); -#endif -#ifdef SIGEMT - sigdelset(sig_mask, SIGEMT); -#endif -#ifdef SIGFPE - sigdelset(sig_mask, SIGFPE); -#endif -#ifdef SIGILL - sigdelset(sig_mask, SIGILL); -#endif -#ifdef SIGIOT - sigdelset(sig_mask, SIGIOT); -#endif -#ifdef SIGPIPE - sigdelset(sig_mask, SIGPIPE); -#endif -#ifdef SIGSEGV - sigdelset(sig_mask, SIGSEGV); -#endif -#ifdef SIGSYS - sigdelset(sig_mask, SIGSYS); -#endif -#ifdef SIGTRAP - sigdelset(sig_mask, SIGTRAP); -#endif - -/* the rest of the signals removed from the mask in this function - * absolutely must be removed; you cannot block synchronous signals - * (requirement of pthreads API) - * - * SIGUSR2 is being removed from the mask for the convenience of - * Purify users (Solaris, HP-UX, SGI) since Purify uses SIGUSR2 - */ -#ifdef SIGUSR2 - sigdelset(sig_mask, SIGUSR2); -#endif -} - -APR_DECLARE(apr_status_t) apr_signal_thread(int(*signal_handler)(int signum)) -{ - sigset_t sig_mask; -#if APR_HAVE_SIGWAIT - int (*sig_func)(int signum) = (int (*)(int))signal_handler; -#endif - - /* This thread will be the one responsible for handling signals */ - sigfillset(&sig_mask); - - /* On certain platforms, sigwait() returns EINVAL if any of various - * unblockable signals are included in the mask. This was first - * observed on AIX and Tru64. - */ -#ifdef SIGKILL - sigdelset(&sig_mask, SIGKILL); -#endif -#ifdef SIGSTOP - sigdelset(&sig_mask, SIGSTOP); -#endif -#ifdef SIGCONT - sigdelset(&sig_mask, SIGCONT); -#endif -#ifdef SIGWAITING - sigdelset(&sig_mask, SIGWAITING); -#endif - - /* no synchronous signals should be in the mask passed to sigwait() */ - remove_sync_sigs(&sig_mask); - - /* On AIX (4.3.3, at least), sigwait() won't wake up if the high- - * order bit of the second word of flags is turned on. sigdelset() - * returns an error when trying to turn this off, so we'll turn it - * off manually. - * - * Note that the private fields differ between 32-bit and 64-bit - * and even between _ALL_SOURCE and !_ALL_SOURCE. Except that on - * AIX 4.3 32-bit builds and 64-bit builds use the same definition. - * - * Applicable AIX fixes such that this is no longer needed: - * - * APAR IY23096 for AIX 51B, fix included in AIX 51C, and - * APAR IY24162 for 43X. - */ -#if defined(_AIX) -#if defined(__64BIT__) && defined(_AIXVERSION_510) -#ifdef _ALL_SOURCE - sig_mask.ss_set[3] &= 0x7FFFFFFF; -#else /* not _ALL_SOURCE */ - sig_mask.__ss_set[3] &= 0x7FFFFFFF; -#endif -#else /* not 64-bit build, or 64-bit build on 4.3 */ -#ifdef _ALL_SOURCE - sig_mask.hisigs &= 0x7FFFFFFF; -#else /* not _ALL_SOURCE */ - sig_mask.__hisigs &= 0x7FFFFFFF; -#endif -#endif -#endif /* _AIX */ - - while (1) { -#if APR_HAVE_SIGWAIT - int signal_received; - - if (apr_sigwait(&sig_mask, &signal_received) != 0) - { - /* handle sigwait() error here */ - } - - if (sig_func(signal_received) == 1) { - return APR_SUCCESS; - } -#elif HAVE_SIGSUSPEND - sigsuspend(&sig_mask); -#else -#error No apr_sigwait() and no sigsuspend() -#endif - } -} - -APR_DECLARE(apr_status_t) apr_setup_signal_thread(void) -{ - sigset_t sig_mask; - int rv; - - /* All threads should mask out signals to be handled by - * the thread doing sigwait(). - * - * No thread should ever block synchronous signals. - * See the Solaris man page for pthread_sigmask() for - * some information. Solaris chooses to knock out such - * processes when a blocked synchronous signal is - * delivered, skipping any registered signal handler. - * AIX doesn't call a signal handler either. At least - * one level of linux+glibc does call the handler even - * when the synchronous signal is blocked. - */ - sigfillset(&sig_mask); - remove_sync_sigs(&sig_mask); - -#if defined(SIGPROCMASK_SETS_THREAD_MASK) - if ((rv = sigprocmask(SIG_SETMASK, &sig_mask, NULL)) != 0) { - rv = errno; - } -#else - if ((rv = pthread_sigmask(SIG_SETMASK, &sig_mask, NULL)) != 0) { -#ifdef PTHREAD_SETS_ERRNO - rv = errno; -#endif - } -#endif - return rv; -} - -#endif - -/* Deprecated */ -const char *apr_signal_get_description(int signum) -{ - return apr_signal_description_get(signum); -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.lo b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.lo deleted file mode 100644 index 43a4057b..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.lo +++ /dev/null @@ -1,12 +0,0 @@ -# signals.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/signals.o' - -# Name of the non-PIC object. -non_pic_object='signals.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.o Binary files differdeleted file mode 100644 index 0164202b..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/signals.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.c b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.c deleted file mode 100644 index d853818a..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.c +++ /dev/null @@ -1,287 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_portable.h" -#include "apr_arch_threadproc.h" - -#if APR_HAS_THREADS - -#if APR_HAVE_PTHREAD_H -APR_DECLARE(apr_status_t) apr_threadattr_create(apr_threadattr_t **new, - apr_pool_t *pool) -{ - apr_status_t stat; - - (*new) = (apr_threadattr_t *)apr_pcalloc(pool, sizeof(apr_threadattr_t)); - (*new)->attr = (pthread_attr_t *)apr_pcalloc(pool, sizeof(pthread_attr_t)); - - if ((*new) == NULL || (*new)->attr == NULL) { - return APR_ENOMEM; - } - - (*new)->pool = pool; - stat = pthread_attr_init((*new)->attr); - - if (stat == 0) { - return APR_SUCCESS; - } -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; -} - -APR_DECLARE(apr_status_t) apr_threadattr_detach_set(apr_threadattr_t *attr, - apr_int32_t on) -{ - apr_status_t stat; -#ifdef PTHREAD_ATTR_SETDETACHSTATE_ARG2_ADDR - int arg = on; - - if ((stat = pthread_attr_setdetachstate(attr->attr, &arg)) == 0) { -#else - if ((stat = pthread_attr_setdetachstate(attr->attr, on)) == 0) { -#endif - - return APR_SUCCESS; - } - else { -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; - } -} - -APR_DECLARE(apr_status_t) apr_threadattr_detach_get(apr_threadattr_t *attr) -{ - int state; - -#ifdef PTHREAD_ATTR_GETDETACHSTATE_TAKES_ONE_ARG - state = pthread_attr_getdetachstate(attr->attr); -#else - pthread_attr_getdetachstate(attr->attr, &state); -#endif - if (state == 1) - return APR_DETACH; - return APR_NOTDETACH; -} - -APR_DECLARE(apr_status_t) apr_threadattr_stacksize_set(apr_threadattr_t *attr, - apr_size_t stacksize) -{ - int stat; - - stat = pthread_attr_setstacksize(attr->attr, stacksize); - if (stat == 0) { - return APR_SUCCESS; - } -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; -} - -static void *dummy_worker(void *opaque) -{ - apr_thread_t *thread = (apr_thread_t*)opaque; - return thread->func(thread, thread->data); -} - -APR_DECLARE(apr_status_t) apr_thread_create(apr_thread_t **new, - apr_threadattr_t *attr, - apr_thread_start_t func, - void *data, - apr_pool_t *pool) -{ - apr_status_t stat; - pthread_attr_t *temp; - - (*new) = (apr_thread_t *)apr_pcalloc(pool, sizeof(apr_thread_t)); - - if ((*new) == NULL) { - return APR_ENOMEM; - } - - (*new)->td = (pthread_t *)apr_pcalloc(pool, sizeof(pthread_t)); - - if ((*new)->td == NULL) { - return APR_ENOMEM; - } - - (*new)->pool = pool; - (*new)->data = data; - (*new)->func = func; - - if (attr) - temp = attr->attr; - else - temp = NULL; - - stat = apr_pool_create(&(*new)->pool, pool); - if (stat != APR_SUCCESS) { - return stat; - } - - if ((stat = pthread_create((*new)->td, temp, dummy_worker, (*new))) == 0) { - return APR_SUCCESS; - } - else { -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; - } -} - -APR_DECLARE(apr_os_thread_t) apr_os_thread_current(void) -{ - return pthread_self(); -} - -APR_DECLARE(int) apr_os_thread_equal(apr_os_thread_t tid1, - apr_os_thread_t tid2) -{ - return pthread_equal(tid1, tid2); -} - -APR_DECLARE(apr_status_t) apr_thread_exit(apr_thread_t *thd, - apr_status_t retval) -{ - thd->exitval = retval; - apr_pool_destroy(thd->pool); - pthread_exit(NULL); - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_thread_join(apr_status_t *retval, - apr_thread_t *thd) -{ - apr_status_t stat; - apr_status_t *thread_stat; - - if ((stat = pthread_join(*thd->td,(void *)&thread_stat)) == 0) { - *retval = thd->exitval; - return APR_SUCCESS; - } - else { -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; - } -} - -APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd) -{ - apr_status_t stat; - -#ifdef PTHREAD_DETACH_ARG1_ADDR - if ((stat = pthread_detach(thd->td)) == 0) { -#else - if ((stat = pthread_detach(*thd->td)) == 0) { -#endif - - return APR_SUCCESS; - } - else { -#ifdef PTHREAD_SETS_ERRNO - stat = errno; -#endif - - return stat; - } -} - -void apr_thread_yield() -{ -} - -APR_DECLARE(apr_status_t) apr_thread_data_get(void **data, const char *key, - apr_thread_t *thread) -{ - return apr_pool_userdata_get(data, key, thread->pool); -} - -APR_DECLARE(apr_status_t) apr_thread_data_set(void *data, const char *key, - apr_status_t (*cleanup)(void *), - apr_thread_t *thread) -{ - return apr_pool_userdata_set(data, key, cleanup, thread->pool); -} - -APR_DECLARE(apr_status_t) apr_os_thread_get(apr_os_thread_t **thethd, - apr_thread_t *thd) -{ - *thethd = thd->td; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_os_thread_put(apr_thread_t **thd, - apr_os_thread_t *thethd, - apr_pool_t *pool) -{ - if (pool == NULL) { - return APR_ENOPOOL; - } - - if ((*thd) == NULL) { - (*thd) = (apr_thread_t *)apr_pcalloc(pool, sizeof(apr_thread_t)); - (*thd)->pool = pool; - } - - (*thd)->td = thethd; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_thread_once_init(apr_thread_once_t **control, - apr_pool_t *p) -{ - static const pthread_once_t once_init = PTHREAD_ONCE_INIT; - - *control = apr_palloc(p, sizeof(**control)); - (*control)->once = once_init; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_thread_once(apr_thread_once_t *control, - void (*func)(void)) -{ - return pthread_once(&control->once, func); -} - -APR_POOL_IMPLEMENT_ACCESSOR(thread) - -#endif /* HAVE_PTHREAD_H */ -#endif /* APR_HAS_THREADS */ - -#if !APR_HAS_THREADS - -/* avoid warning for no prototype */ -APR_DECLARE(apr_status_t) apr_os_thread_get(void); - -APR_DECLARE(apr_status_t) apr_os_thread_get(void) -{ - return APR_ENOTIMPL; -} - -#endif diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.lo b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.lo deleted file mode 100644 index 39686879..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.lo +++ /dev/null @@ -1,12 +0,0 @@ -# thread.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/thread.o' - -# Name of the non-PIC object. -non_pic_object='thread.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.o Binary files differdeleted file mode 100644 index 589dea35..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/thread.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.c b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.c deleted file mode 100644 index c2785203..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_portable.h" -#include "apr_arch_threadproc.h" - -#if APR_HAS_THREADS - -#if APR_HAVE_PTHREAD_H -APR_DECLARE(apr_status_t) apr_threadkey_private_create(apr_threadkey_t **key, - void (*dest)(void *), - apr_pool_t *pool) -{ - (*key) = (apr_threadkey_t *)apr_pcalloc(pool, sizeof(apr_threadkey_t)); - - if ((*key) == NULL) { - return APR_ENOMEM; - } - - (*key)->pool = pool; - - return pthread_key_create(&(*key)->key, dest); - -} - -APR_DECLARE(apr_status_t) apr_threadkey_private_get(void **new, - apr_threadkey_t *key) -{ -#ifdef PTHREAD_GETSPECIFIC_TAKES_TWO_ARGS - if (pthread_getspecific(key->key,new)) - *new = NULL; -#else - (*new) = pthread_getspecific(key->key); -#endif - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_threadkey_private_set(void *priv, - apr_threadkey_t *key) -{ - apr_status_t stat; - - if ((stat = pthread_setspecific(key->key, priv)) == 0) { - return APR_SUCCESS; - } - else { - return stat; - } -} - -APR_DECLARE(apr_status_t) apr_threadkey_private_delete(apr_threadkey_t *key) -{ -#ifdef HAVE_PTHREAD_KEY_DELETE - apr_status_t stat; - - if ((stat = pthread_key_delete(key->key)) == 0) { - return APR_SUCCESS; - } - - return stat; -#else - return APR_ENOTIMPL; -#endif -} - -APR_DECLARE(apr_status_t) apr_threadkey_data_get(void **data, const char *key, - apr_threadkey_t *threadkey) -{ - return apr_pool_userdata_get(data, key, threadkey->pool); -} - -APR_DECLARE(apr_status_t) apr_threadkey_data_set(void *data, const char *key, - apr_status_t (*cleanup)(void *), - apr_threadkey_t *threadkey) -{ - return apr_pool_userdata_set(data, key, cleanup, threadkey->pool); -} - -APR_DECLARE(apr_status_t) apr_os_threadkey_get(apr_os_threadkey_t *thekey, - apr_threadkey_t *key) -{ - *thekey = key->key; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_os_threadkey_put(apr_threadkey_t **key, - apr_os_threadkey_t *thekey, - apr_pool_t *pool) -{ - if (pool == NULL) { - return APR_ENOPOOL; - } - - if ((*key) == NULL) { - (*key) = (apr_threadkey_t *)apr_pcalloc(pool, sizeof(apr_threadkey_t)); - (*key)->pool = pool; - } - - (*key)->key = *thekey; - return APR_SUCCESS; -} -#endif /* APR_HAVE_PTHREAD_H */ -#endif /* APR_HAS_THREADS */ - -#if !APR_HAS_THREADS - -/* avoid warning for no prototype */ -APR_DECLARE(apr_status_t) apr_os_threadkey_get(void); - -APR_DECLARE(apr_status_t) apr_os_threadkey_get(void) -{ - return APR_ENOTIMPL; -} - -#endif diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.lo b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.lo deleted file mode 100644 index a32c9d51..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.lo +++ /dev/null @@ -1,12 +0,0 @@ -# threadpriv.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/threadpriv.o' - -# Name of the non-PIC object. -non_pic_object='threadpriv.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.o b/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.o Binary files differdeleted file mode 100644 index fcf0f393..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/threadproc/unix/threadpriv.o +++ /dev/null |