Commit 29b7f809 29b7f809ef65fabed523a89e8df57840362523ce by Alain Magloire

simple thread-safe implementation of refcount.

1 parent aee5de3e
/* GNU mailutils - a suite of utilities for electronic mail
Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifndef _MAILUTILS_REFCOUNT_H
#define _MAILUTILS_REFCOUNT_H
#include <mailutils/types.h>
#ifdef __cplusplus
extern "C" {
#endif
/* FIXME: Declaration should be hidden in mailutils/sys/refcount.h */
struct _mu_refcount
{
unsigned int ref;
monitor_t lock;
};
extern int mu_refcount_create __P ((mu_refcount_t *));
extern void mu_refcount_destroy __P ((mu_refcount_t *));
extern int mu_refcount_inc __P ((mu_refcount_t));
extern int mu_refcount_dec __P ((mu_refcount_t));
#ifdef __cplusplus
}
#endif
#endif /* _MAILUTILS_REFCOUNT_H */
......@@ -59,6 +59,7 @@ struct _message;
struct _mime;
struct _mu_mailcap;
struct _mu_mailcap_entry;
struct _mu_refcount;
struct _observable;
struct _observer;
struct _property;
......@@ -87,6 +88,7 @@ typedef struct _message *message_t;
typedef struct _mime *mime_t;
typedef struct _mu_mailcap *mu_mailcap_t;
typedef struct _mu_mailcap_entry *mu_mailcap_entry_t;
typedef struct _mu_refcount *mu_refcount_t;
typedef struct _observable *observable_t;
typedef struct _observer *observer_t;
typedef struct _property *property_t;
......