Return-Path: Delivered-To: apache-cvs-archive@hyperreal.org Received: (qmail 5992 invoked by uid 6000); 4 Jun 1999 16:40:41 -0000 Received: (qmail 5728 invoked by alias); 4 Jun 1999 16:40:31 -0000 Delivered-To: apache-apr-cvs@hyperreal.org Received: (qmail 5658 invoked by uid 240); 4 Jun 1999 16:40:26 -0000 Date: 4 Jun 1999 16:40:26 -0000 Message-ID: <19990604164026.5657.qmail@hyperreal.org> From: bjh@hyperreal.org To: apache-apr-cvs@hyperreal.org Subject: cvs commit: apache-apr/apr/locks/os2 Makefile.in locks.c locks.h Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org bjh 99/06/04 09:40:23 Added: apr/locks/os2 Makefile.in locks.c locks.h Log: OS/2 locks library. Revision Changes Path 1.1 apache-apr/apr/locks/os2/Makefile.in Index: Makefile.in =================================================================== #CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS) #LIBS=$(EXTRA_LIBS) $(LIBS1) #INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES) #LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) CC=@CC@ RANLIB=@RANLIB@ CFLAGS=@PLATFORM@ @CFLAGS@ @OPTIM@ LDLIBS=@LDLIBS@ LDFLAGS=@LDFLAGS@ $(LDLIBS) INCDIR=../../include INCDIR1=../../../include INCDIR2=../../file_io/unix INCLUDES=-I$(INCDIR) -I$(INCDIR1) -I$(INCDIR2) -I. LIB=../lock.a OBJS=locks.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 crossproc.o: crossproc.c ../../../include/apr_lock.h \ ../../../include/apr_general.h ../../../include/apr_errno.h locks.h \ ../../../include/apr_file_io.h ../../file_io/unix/fileio.h intraproc.o: intraproc.c ../../../include/apr_lock.h \ ../../../include/apr_general.h ../../../include/apr_errno.h locks.h \ ../../../include/apr_file_io.h ../../file_io/unix/fileio.h locks.o: locks.c ../../../include/apr_lock.h \ ../../../include/apr_general.h ../../../include/apr_errno.h locks.h \ ../../../include/apr_file_io.h ../../file_io/unix/fileio.h 1.1 apache-apr/apr/locks/os2/locks.c Index: locks.c =================================================================== /* ==================================================================== * 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 . * */ #include "apr_general.h" #include "apr_lib.h" #include "locks.h" #include #define INCL_DOS #include ap_status_t ap_create_lock(ap_context_t *cont, ap_locktype_e type, char *fname, struct lock_t **lock) { struct lock_t *new; ULONG rc; char *semname; new = (struct lock_t *)ap_palloc(cont, sizeof(struct lock_t)); new->cntxt = cont; new->type = type; new->curr_locked = 0; new->fname = ap_pstrdup(cont, fname); semname = ap_pstrcat(cont, "/SEM32/", fname, NULL); rc = DosCreateMutexSem(semname, &(new->hMutex), type == APR_CROSS_PROCESS ? DC_SEM_SHARED : 0, FALSE); *lock = new; return os2errno(rc); } ap_status_t ap_lock(struct lock_t *lock) { ULONG rc; rc = DosRequestMutexSem(lock->hMutex, SEM_INDEFINITE_WAIT); if (rc == 0) lock->curr_locked = TRUE; return os2errno(rc); } ap_status_t ap_unlock(struct lock_t *lock) { ULONG rc; rc = DosReleaseMutexSem(lock->hMutex); if (rc == 0) lock->curr_locked = FALSE; return os2errno(rc); } ap_status_t ap_destroy_lock(struct lock_t *lock) { ULONG rc; if (lock->curr_locked) { rc = DosReleaseMutexSem(lock->hMutex); if (rc) return os2errno(rc); } rc = DosCloseMutexSem(lock->hMutex); return os2errno(rc); } 1.1 apache-apr/apr/locks/os2/locks.h Index: locks.h =================================================================== /* ==================================================================== * 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 . * */ #ifndef LOCKS_H #define LOCKS_H #include "apr_lock.h" #include "apr_file_io.h" #define INCL_DOS #include struct lock_t { ap_context_t *cntxt; ap_locktype_e type; int curr_locked; char *fname; HMTX hMutex; }; #endif /* LOCKS_H */