aboutsummaryrefslogtreecommitdiff
path: root/threadproc/os2
diff options
context:
space:
mode:
Diffstat (limited to 'threadproc/os2')
-rw-r--r--threadproc/os2/Makefile.in71
-rw-r--r--threadproc/os2/proc.c321
-rw-r--r--threadproc/os2/signals.c82
-rw-r--r--threadproc/os2/thread.c178
-rw-r--r--threadproc/os2/threadcancel.c86
-rw-r--r--threadproc/os2/threadpriv.c92
-rw-r--r--threadproc/os2/threadproc.h108
7 files changed, 0 insertions, 938 deletions
diff --git a/threadproc/os2/Makefile.in b/threadproc/os2/Makefile.in
deleted file mode 100644
index 91d4249c2..000000000
--- a/threadproc/os2/Makefile.in
+++ /dev/null
@@ -1,71 +0,0 @@
-#CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-#LIBS=$(EXTRA_LIBS) $(LIBS1)
-#INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-#LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-CC=@CC@
-RANLIB=@RANLIB@
-CFLAGS=@CFLAGS@ @OPTIM@
-LIBS=@LIBS@
-LDFLAGS=@LDFLAGS@ $(LIBS)
-INCDIR=../../inc
-INCDIR1=../../include
-INCDIR2=../../file_io/os2
-INCLUDES=-I$(INCDIR) -I$(INCDIR1) -I$(INCDIR2) -I.
-
-LIB=../threadproc.a
-
-OBJS=proc.o \
- thread.o \
- threadcancel.o \
- threadpriv.o \
- signals.o
-
-.c.o:
- $(CC) $(CFLAGS) -c $(INCLUDES) $<
-
-all: $(LIB)
-
-clean:
- $(RM) -f *.o *.a *.so
-
-distclean: clean
- -$(RM) -f Makefile
-
-$(OBJS): Makefile
-
-$(LIB): $(OBJS)
- $(RM) -f $@
- $(AR) cr $@ $(OBJS)
- $(RANLIB) $@
-
-#
-# We really don't expect end users to use this rule. It works only with
-# gcc, and rebuilds Makefile.tmpl. You have to re-run Configure after
-# using it.
-#
-depend:
- cp Makefile.in Makefile.in.bak \
- && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.in > Makefile.new \
- && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> Makefile.new \
- && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.in \
- && rm Makefile.new
-
-# DO NOT REMOVE
-proc.o: proc.c threadproc.h ../../include/apr_thread_proc.h \
- ../../include/apr_file_io.h ../../include/apr_general.h \
- ../../include/apr_errno.h ../../file_io/unix/fileio.h
-signals.o: signals.c threadproc.h ../../include/apr_thread_proc.h \
- ../../include/apr_file_io.h ../../include/apr_general.h \
- ../../include/apr_errno.h ../../file_io/unix/fileio.h
-thread.o: thread.c threadproc.h ../../include/apr_thread_proc.h \
- ../../include/apr_file_io.h ../../include/apr_general.h \
- ../../include/apr_errno.h
-threadcancel.o: threadcancel.c threadproc.h \
- ../../include/apr_thread_proc.h ../../include/apr_file_io.h \
- ../../include/apr_general.h ../../include/apr_errno.h
-threadpriv.o: threadpriv.c threadproc.h \
- ../../include/apr_thread_proc.h ../../include/apr_file_io.h \
- ../../include/apr_general.h ../../include/apr_errno.h
diff --git a/threadproc/os2/proc.c b/threadproc/os2/proc.c
deleted file mode 100644
index 5767d898c..000000000
--- a/threadproc/os2/proc.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "threadproc.h"
-#include "fileio.h"
-
-#include "apr_thread_proc.h"
-#include "apr_file_io.h"
-#include "apr_general.h"
-#include "apr_lib.h"
-#include <signal.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#define INCL_DOS
-#include <os2.h>
-
-ap_status_t ap_createprocattr_init(ap_context_t *cont, struct procattr_t **new)
-{
- (*new) = (struct procattr_t *)ap_palloc(cont,
- sizeof(struct procattr_t));
-
- if ((*new) == NULL) {
- return APR_ENOMEM;
- }
- (*new)->cntxt = cont;
- (*new)->parent_in = NULL;
- (*new)->child_in = NULL;
- (*new)->parent_out = NULL;
- (*new)->child_out = NULL;
- (*new)->parent_err = NULL;
- (*new)->child_err = NULL;
- (*new)->currdir = NULL;
- (*new)->cmdtype = APR_PROGRAM;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_setprocattr_io(struct procattr_t *attr, ap_int32_t in,
- ap_int32_t out, ap_int32_t err)
-{
- ap_status_t stat;
- if (in) {
- if ((stat = ap_create_pipe(attr->cntxt, &attr->child_in,
- &attr->parent_in)) != APR_SUCCESS) {
- return stat;
- }
- }
- if (out) {
- if ((stat = ap_create_pipe(attr->cntxt, &attr->parent_out,
- &attr->child_out)) != APR_SUCCESS) {
- return stat;
- }
- }
- if (err) {
- if ((stat = ap_create_pipe(attr->cntxt, &attr->parent_err,
- &attr->child_err)) != APR_SUCCESS) {
- return stat;
- }
- }
- return APR_SUCCESS;
-}
-
-ap_status_t ap_setprocattr_dir(struct procattr_t *attr,
- char *dir)
-{
- attr->currdir = ap_pstrdup(attr->cntxt, dir);
- if (attr->currdir) {
- return APR_SUCCESS;
- }
- return APR_ENOMEM;
-}
-
-ap_status_t ap_setprocattr_cmdtype(struct procattr_t *attr,
- ap_cmdtype_e cmd)
-{
- attr->cmdtype = cmd;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_fork(ap_context_t *cont, struct proc_t **proc)
-{
- int pid;
-
- (*proc) = ap_palloc(cont, sizeof(struct proc_t));
-
- if ((pid = fork()) < 0) {
- return errno;
- } else if (pid == 0) {
- (*proc)->pid = pid;
- (*proc)->attr = NULL;
- (*proc)->running = TRUE;
- return APR_INCHILD;
- }
-
- (*proc)->pid = pid;
- (*proc)->attr = NULL;
- (*proc)->running = TRUE;
- return APR_INPARENT;
-}
-
-ap_status_t ap_create_process(ap_context_t *cont, char *progname,
- char *const args[], char **env,
- struct procattr_t *attr, struct proc_t **new)
-{
- int i;
- ap_status_t stat;
- char **newargs;
- char savedir[300];
- HFILE save_in, save_out, save_err, dup;
- int criticalsection = FALSE;
-
- (*new) = (struct proc_t *)ap_palloc(cont, sizeof(struct proc_t));
-
- if ((*new) == NULL) {
- return APR_ENOMEM;
- }
-
- (*new)->cntxt = cont;
- (*new)->running = FALSE;
-
-/* Prevent other threads from running while these process-wide resources are modified */
- if (attr->child_in || attr->child_out || attr->child_err || attr->currdir) {
- criticalsection = TRUE;
- DosEnterCritSec();
- }
-
- if (attr->child_in) {
- save_in = -1;
- DosDupHandle(STDIN_FILENO, &save_in);
- dup = STDIN_FILENO;
- DosDupHandle(attr->child_in->filedes, &dup);
- DosSetFHState(attr->parent_in->filedes, OPEN_FLAGS_NOINHERIT);
- }
-
- if (attr->child_out) {
- save_out = -1;
- DosDupHandle(STDOUT_FILENO, &save_out);
- dup = STDOUT_FILENO;
- DosDupHandle(attr->child_out->filedes, &dup);
- DosSetFHState(attr->parent_out->filedes, OPEN_FLAGS_NOINHERIT);
- }
-
- if (attr->child_err) {
- save_err = -1;
- DosDupHandle(STDERR_FILENO, &save_err);
- dup = STDERR_FILENO;
- DosDupHandle(attr->child_err->filedes, &dup);
- DosSetFHState(attr->parent_err->filedes, OPEN_FLAGS_NOINHERIT);
- }
-
- signal(SIGCHLD, SIG_DFL); /*not sure if this is needed or not */
-
- if (attr->currdir != NULL) {
- _getcwd2(savedir, sizeof(savedir));
-
- if (_chdir2(attr->currdir) < 0) {
- if (criticalsection)
- DosExitCritSec();
- return errno;
- }
- }
-
- if (attr->cmdtype == APR_SHELLCMD) {
- i = 0;
- while (args[i]) {
- i++;
- }
- newargs = (char **)ap_palloc(cont, sizeof (char *) * (i + 3));
- newargs[0] = ap_pstrdup(cont, SHELL_PATH);
- newargs[1] = ap_pstrdup(cont, "/c");
- i = 0;
-
- while (args[i]) {
- newargs[i + 2] = ap_pstrdup(cont, args[i]);
- i++;
- }
-
- newargs[i + 3] = NULL;
- (*new)->pid = spawnve(P_NOWAIT, SHELL_PATH, newargs, env);
- } else {
- (*new)->pid = spawnve(P_NOWAIT, progname, args, env);
- }
-
- stat = (*new)->pid < 0 ? errno : APR_SUCCESS;
-
- if (attr->currdir != NULL) {
- chdir(savedir);
- }
-
- if (attr->child_in) {
- ap_close(attr->child_in);
- dup = STDIN_FILENO;
- DosDupHandle(save_in, &dup);
- DosClose(save_in);
- }
-
- if (attr->child_out) {
- ap_close(attr->child_out);
- dup = STDOUT_FILENO;
- DosDupHandle(save_out, &dup);
- DosClose(save_out);
- }
-
- if (attr->child_err) {
- ap_close(attr->child_err);
- dup = STDERR_FILENO;
- DosDupHandle(save_err, &dup);
- DosClose(save_err);
- }
-
- if (criticalsection)
- DosExitCritSec();
-
- (*new)->attr = attr;
- (*new)->running = stat == APR_SUCCESS;
- return stat;
-}
-
-
-
-ap_status_t ap_get_childin(struct proc_t *proc, ap_file_t **new)
-{
- (*new) = proc->attr->parent_in;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_get_childout(struct proc_t *proc, ap_file_t **new)
-{
- (*new) = proc->attr->parent_out;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_get_childerr(struct proc_t *proc, ap_file_t **new)
-{
- (*new) = proc->attr->parent_err;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_wait_proc(struct proc_t *proc,
- ap_wait_how_e wait)
-{
- pid_t stat;
-
- if (!proc)
- return APR_ENOPROC;
-
- if (!proc->running)
- return APR_CHILD_DONE;
-
- if (wait == APR_WAIT) {
- if ((stat = waitpid(proc->pid, NULL, WUNTRACED)) > 0) {
- proc->running = FALSE;
- return APR_CHILD_DONE;
- } else if (stat == 0) {
- return APR_CHILD_NOTDONE;
- }
- return errno;
- }
-
- if ((stat = waitpid(proc->pid, NULL, WUNTRACED | WNOHANG)) > 0) {
- proc->running = FALSE;
- return APR_CHILD_DONE;
- } else if (stat == 0) {
- return APR_CHILD_NOTDONE;
- }
-
- return errno;
-}
-
diff --git a/threadproc/os2/signals.c b/threadproc/os2/signals.c
deleted file mode 100644
index d0014f695..000000000
--- a/threadproc/os2/signals.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "threadproc.h"
-#include "fileio.h"
-#include "apr_thread_proc.h"
-#include "apr_file_io.h"
-#include "apr_general.h"
-#include <signal.h>
-#include <string.h>
-#include <sys/wait.h>
-#define INCL_DOS
-#include <os2.h>
-
-ap_status_t ap_kill(struct proc_t *proc, int signal)
-{
-/* 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 */
-
- ap_status_t rc;
-
- if ( signal == SIGTERM ) {
- rc = os2errno(DosSendSignalException(proc->pid, XCPT_SIGNAL_BREAK));
- } else {
- rc = kill(proc->pid, signal) < 0 ? errno : APR_SUCCESS;
- }
-
- return rc;
-}
-
diff --git a/threadproc/os2/thread.c b/threadproc/os2/thread.c
deleted file mode 100644
index 14cf980c5..000000000
--- a/threadproc/os2/thread.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "threadproc.h"
-#include "apr_thread_proc.h"
-#include "apr_general.h"
-#include "apr_lib.h"
-#include "fileio.h"
-#define INCL_DOS
-#include <os2.h>
-
-ap_status_t ap_create_threadattr(ap_context_t *cont, struct threadattr_t **new)
-{
- (*new) = (struct threadattr_t *)ap_palloc(cont, sizeof(struct threadattr_t));
-
- if ((*new) == NULL) {
- return APR_ENOMEM;
- }
-
- (*new)->cntxt = cont;
- (*new)->attr = 0;
- return APR_SUCCESS;
-}
-
-
-
-ap_status_t ap_setthreadattr_detach(struct threadattr_t *attr, ap_int32_t on)
-{
- attr->attr |= APR_THREADATTR_DETACHED;
- return APR_SUCCESS;
-}
-
-
-
-ap_status_t ap_getthreadattr_detach(struct threadattr_t *attr)
-{
- return (attr->attr & APR_THREADATTR_DETACHED) ? APR_DETACH : APR_NOTDETACH;
-}
-
-
-
-static void ap_thread_begin(void *arg)
-{
- struct thread_t *thread = (struct thread_t *)arg;
- thread->rv = thread->func(thread->data);
-}
-
-
-
-ap_status_t ap_create_thread(ap_context_t *cont, struct threadattr_t *attr,
- ap_thread_start_t func, void *data,
- struct thread_t **new)
-{
- ap_status_t stat;
- ap_thread_t *thread;
-
- thread = (struct thread_t *)ap_palloc(cont, sizeof(struct thread_t));
- *new = thread;
-
- if (thread == NULL) {
- return APR_ENOMEM;
- }
-
- thread->cntxt = cont;
- thread->attr = attr;
- thread->func = func;
- thread->data = data;
- stat = ap_create_context(cont, NULL, &thread->cntxt);
-
- if (stat != APR_SUCCESS) {
- return stat;
- }
-
- if (attr == NULL) {
- stat = ap_create_threadattr(thread->cntxt, &thread->attr);
-
- if (stat != APR_SUCCESS) {
- return stat;
- }
- }
-
- if (thread->attr->attr & APR_THREADATTR_DETACHED)
- thread->tid = _beginthread((os2_thread_start_t)func, NULL, APR_THREAD_STACKSIZE, data);
- else
- thread->tid = _beginthread(ap_thread_begin, NULL, APR_THREAD_STACKSIZE, thread);
-
- if (thread->tid < 0) {
- return errno;
- }
-
- return APR_SUCCESS;
-}
-
-
-
-ap_status_t ap_thread_exit(ap_thread_t *thd, ap_status_t *retval)
-{
- thd->rv = retval;
- _endthread();
- return -1; /* If we get here something's wrong */
-}
-
-
-
-ap_status_t ap_thread_join(struct thread_t *thd, ap_status_t *retval)
-{
- ULONG rc;
- TID waittid = thd->tid;
-
- if (thd->attr->attr & APR_THREADATTR_DETACHED)
- return APR_ENOSTAT;
-
- rc = DosWaitThread(&waittid, DCWW_WAIT);
- *retval = (ap_status_t)thd->rv;
- return os2errno(rc);
-}
-
-
-
-ap_status_t ap_thread_detach(struct thread_t *thd)
-{
- thd->attr->attr |= APR_THREADATTR_DETACHED;
- return APR_SUCCESS;
-}
-
-
diff --git a/threadproc/os2/threadcancel.c b/threadproc/os2/threadcancel.c
deleted file mode 100644
index 5f4766bc5..000000000
--- a/threadproc/os2/threadcancel.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "threadproc.h"
-#include "apr_thread_proc.h"
-#include "apr_general.h"
-#include "fileio.h"
-
-ap_status_t ap_cancel_thread(struct thread_t *thd)
-{
- return os2errno(DosKillThread(thd->tid));
-}
-
-
-
-ap_status_t ap_setcanceltype(ap_context_t *cont, ap_int32_t type)
-{
- ULONG rc, nesting;
-
- if (type == APR_CANCEL_DEFER)
- rc = DosEnterMustComplete(&nesting);
- else
- rc = DosExitMustComplete(&nesting);
-
- return os2errno(rc);
-}
-
-
-
-ap_status_t ap_setcancelstate(ap_context_t *cont, ap_int32_t type)
-{
-/* There's no way to ignore thread kills altogether in OS/2 (that I know of) */
- return -1;
-}
diff --git a/threadproc/os2/threadpriv.c b/threadproc/os2/threadpriv.c
deleted file mode 100644
index 049f93896..000000000
--- a/threadproc/os2/threadpriv.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "threadproc.h"
-#include "apr_thread_proc.h"
-#include "apr_general.h"
-#include "apr_errno.h"
-#include "apr_lib.h"
-#include "fileio.h"
-
-ap_status_t ap_create_thread_private(ap_context_t *cont, void (*dest)(void *),
- struct threadkey_t **key)
-{
- (*key) = (struct threadkey_t *)ap_palloc(cont, sizeof(struct threadkey_t));
-
- if ((*key) == NULL) {
- return APR_ENOMEM;
- }
-
- (*key)->cntxt = cont;
- return os2errno(DosAllocThreadLocalMemory(1, &((*key)->key)));
-}
-
-ap_status_t ap_get_thread_private(struct threadkey_t *key, void **new)
-{
- (*new) = (void *)*(key->key);
- return APR_SUCCESS;
-}
-
-ap_status_t ap_set_thread_private(struct threadkey_t *key, void *priv)
-{
- *(key->key) = (ULONG)priv;
- return APR_SUCCESS;
-}
-
-ap_status_t ap_delete_thread_private(struct threadkey_t *key)
-{
- return os2errno(DosFreeThreadLocalMemory(key->key));
-}
-
diff --git a/threadproc/os2/threadproc.h b/threadproc/os2/threadproc.h
deleted file mode 100644
index 215a7f9fd..000000000
--- a/threadproc/os2/threadproc.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* ====================================================================
- * Copyright (c) 1999 The Apache Group. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * 4. The names "Apache Server" and "Apache Group" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the Apache Group
- * for use in the Apache HTTP server project (http://www.apache.org/)."
- *
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Group.
- * For more information on the Apache Group and the Apache HTTP server
- * project, please see <http://www.apache.org/>.
- *
- */
-
-#include "apr_thread_proc.h"
-#include "apr_file_io.h"
-
-#ifndef THREAD_PROC_H
-#define THREAD_PROC_H
-
-#define APR_THREADATTR_DETACHED 1
-
-#define SHELL_PATH "cmd.exe"
-#define APR_THREAD_STACKSIZE 65536
-
-struct threadattr_t {
- ap_context_t *cntxt;
- unsigned long attr;
-};
-
-struct thread_t {
- ap_context_t *cntxt;
- struct threadattr_t *attr;
- unsigned long tid;
- ap_thread_start_t func;
- void *data;
- void *rv;
-};
-
-struct threadkey_t {
- ap_context_t *cntxt;
- unsigned long *key;
-};
-
-struct procattr_t {
- ap_context_t *cntxt;
- ap_file_t *parent_in;
- ap_file_t *child_in;
- ap_file_t *parent_out;
- ap_file_t *child_out;
- ap_file_t *parent_err;
- ap_file_t *child_err;
- char *currdir;
- ap_int32_t cmdtype;
-};
-
-struct proc_t {
- ap_context_t *cntxt;
- pid_t pid;
- struct procattr_t *attr;
- int running;
-};
-
-typedef void (*os2_thread_start_t)(void *);
-
-#endif /* ! THREAD_PROC_H */
-