2005-05-06 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / collection.h
1 /*
2  * collection.h:  Garbage collection for handles
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2004 Novell, Inc.
8  */
9
10 #ifndef _WAPI_COLLECTION_H_
11 #define _WAPI_COLLECTION_H_
12
13 #include <glib.h>
14
15 #define _WAPI_HANDLE_COLLECTION_UPDATE_INTERVAL         10
16 #define _WAPI_HANDLE_COLLECTION_EXPIRED_INTERVAL        60
17
18 #include <mono/io-layer/shared.h>
19
20 #define _WAPI_HANDLE_COLLECTION_UNSAFE          \
21         {                                       \
22                 int _wapi_thr_ret;              \
23                                                 \
24                 _wapi_thr_ret = _wapi_shm_sem_lock (_WAPI_SHARED_SEM_COLLECTION);       \
25                 g_assert(_wapi_thr_ret == 0);
26
27 #define _WAPI_HANDLE_COLLECTION_SAFE            \
28                 _wapi_thr_ret = _wapi_shm_sem_unlock (_WAPI_SHARED_SEM_COLLECTION); \
29                 g_assert (_wapi_thr_ret == 0);  \
30         }
31         
32 extern void _wapi_collection_init (void);
33 extern void _wapi_handle_collect (void);
34
35 #endif /* _WAPI_COLLECTION_H_ */