Annotation of embedaddon/ntp/lib/isc/mutexblock.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
                      3:  * Copyright (C) 1999-2001  Internet Software Consortium.
                      4:  *
                      5:  * Permission to use, copy, modify, and/or distribute this software for any
                      6:  * purpose with or without fee is hereby granted, provided that the above
                      7:  * copyright notice and this permission notice appear in all copies.
                      8:  *
                      9:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
                     10:  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
                     11:  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
                     12:  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
                     13:  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
                     14:  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
                     15:  * PERFORMANCE OF THIS SOFTWARE.
                     16:  */
                     17: 
                     18: /* $Id: mutexblock.c,v 1.20 2007/06/19 23:47:17 tbox Exp $ */
                     19: 
                     20: /*! \file */
                     21: 
                     22: #include <config.h>
                     23: 
                     24: #include <isc/mutexblock.h>
                     25: #include <isc/util.h>
                     26: 
                     27: isc_result_t
                     28: isc_mutexblock_init(isc_mutex_t *block, unsigned int count) {
                     29:        isc_result_t result;
                     30:        unsigned int i;
                     31: 
                     32:        for (i = 0; i < count; i++) {
                     33:                result = isc_mutex_init(&block[i]);
                     34:                if (result != ISC_R_SUCCESS) {
                     35:                        i--;
                     36:                        while (i > 0) {
                     37:                                DESTROYLOCK(&block[i]);
                     38:                                i--;
                     39:                        }
                     40:                        return (result);
                     41:                }
                     42:        }
                     43: 
                     44:        return (ISC_R_SUCCESS);
                     45: }
                     46: 
                     47: isc_result_t
                     48: isc_mutexblock_destroy(isc_mutex_t *block, unsigned int count) {
                     49:        isc_result_t result;
                     50:        unsigned int i;
                     51: 
                     52:        for (i = 0; i < count; i++) {
                     53:                result = isc_mutex_destroy(&block[i]);
                     54:                if (result != ISC_R_SUCCESS)
                     55:                        return (result);
                     56:        }
                     57: 
                     58:        return (ISC_R_SUCCESS);
                     59: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>