monitors provide a way of locking.
Showing
3 changed files
with
61 additions
and
8 deletions
... | @@ -64,9 +64,9 @@ extern int mailbox_size __P ((mailbox_t, off_t *size)); | ... | @@ -64,9 +64,9 @@ extern int mailbox_size __P ((mailbox_t, off_t *size)); |
64 | extern int mailbox_is_updated __P ((mailbox_t)); | 64 | extern int mailbox_is_updated __P ((mailbox_t)); |
65 | extern int mailbox_scan __P ((mailbox_t, size_t no, size_t *count)); | 65 | extern int mailbox_scan __P ((mailbox_t, size_t no, size_t *count)); |
66 | 66 | ||
67 | /* Stream settings. */ | 67 | /* Mailbox Stream. */ |
68 | extern int mailbox_get_stream __P ((mailbox_t, stream_t *)); | ||
69 | extern int mailbox_set_stream __P ((mailbox_t, stream_t)); | 68 | extern int mailbox_set_stream __P ((mailbox_t, stream_t)); |
69 | extern int mailbox_get_stream __P ((mailbox_t, stream_t *)); | ||
70 | 70 | ||
71 | /* Lock settings. */ | 71 | /* Lock settings. */ |
72 | extern int mailbox_get_locker __P ((mailbox_t, locker_t *)); | 72 | extern int mailbox_get_locker __P ((mailbox_t, locker_t *)); | ... | ... |
include/mailutils/monitor.h
0 → 100644
1 | /* GNU mailutils - a suite of utilities for electronic mail | ||
2 | Copyright (C) 1999, 2000 Free Software Foundation, Inc. | ||
3 | |||
4 | This program is free software; you can redistribute it and/or modify | ||
5 | it under the terms of the GNU General Library Public License as published by | ||
6 | the Free Software Foundation; either version 2, or (at your option) | ||
7 | any later version. | ||
8 | |||
9 | This program is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU Library General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU Library General Public License | ||
15 | along with this program; if not, write to the Free Software | ||
16 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
17 | |||
18 | #ifndef _MAILUTILS_MONITOR_H | ||
19 | #define _MAILUTILS_MONITOR_H | ||
20 | |||
21 | #include <sys/types.h> | ||
22 | |||
23 | #ifdef __cplusplus | ||
24 | extern "C" { | ||
25 | #endif | ||
26 | |||
27 | #ifndef __P | ||
28 | # ifdef __STDC__ | ||
29 | # define __P(args) args | ||
30 | # else | ||
31 | # define __P(args) () | ||
32 | # endif | ||
33 | #endif /*__P */ | ||
34 | |||
35 | struct _monitor; | ||
36 | typedef struct _monitor *monitor_t; | ||
37 | |||
38 | extern int monitor_create __P ((monitor_t *, void *owner)); | ||
39 | extern void monitor_destroy __P ((monitor_t *, void *owner)); | ||
40 | extern void *monitor_get_owner __P ((monitor_t)); | ||
41 | |||
42 | extern int monitor_rdlock __P ((monitor_t)); | ||
43 | extern int monitor_wrlock __P ((monitor_t)); | ||
44 | extern int monitor_unlock __P ((monitor_t)); | ||
45 | extern int monitor_wait __P ((monitor_t)); | ||
46 | extern int monitor_notify __P ((monitor_t)); | ||
47 | |||
48 | #ifdef __cplusplus | ||
49 | } | ||
50 | #endif | ||
51 | |||
52 | #endif /* _MAILUTILS_MONITOR_H */ |
... | @@ -38,12 +38,13 @@ typedef struct _observer* observer_t; | ... | @@ -38,12 +38,13 @@ typedef struct _observer* observer_t; |
38 | typedef struct _observable* observable_t; | 38 | typedef struct _observable* observable_t; |
39 | 39 | ||
40 | #define MU_EVT_MAILBOX_DESTROY 0x001 | 40 | #define MU_EVT_MAILBOX_DESTROY 0x001 |
41 | #define MU_EVT_FOLDER_DESTROY 0x001 | 41 | #define MU_EVT_FOLDER_DESTROY 0x002 |
42 | #define MU_EVT_MAILER_DESTROY 0x002 | 42 | #define MU_EVT_MAILER_DESTROY 0x004 |
43 | #define MU_EVT_MESSAGE_DESTROY 0x004 | 43 | #define MU_EVT_MESSAGE_DESTROY 0x008 |
44 | #define MU_EVT_MESSAGE_ADD 0x008 | 44 | #define MU_EVT_MESSAGE_ADD 0x010 |
45 | #define MU_EVT_MAILBOX_PROGRESS 0x010 | 45 | #define MU_EVT_MAILBOX_PROGRESS 0x020 |
46 | #define MU_EVT_AUTHORITY_FAILED 0x020 | 46 | #define MU_EVT_AUTHORITY_FAILED 0x030 |
47 | #define MU_EVT_MAILBOX_CORRUPT 0x040 | ||
47 | 48 | ||
48 | #define MU_OBSERVER_NO_CHECK 1 | 49 | #define MU_OBSERVER_NO_CHECK 1 |
49 | 50 | ... | ... |
-
Please register or sign in to post a comment