* Added a TRANSACTION_IDLE notification that is sent when the transaction

hasn't been used for more than 2 seconds.
* Replaced the block_cache::lock benaphore with a recursive lock, so that
  you can call cache functions from within the notification listeners.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24737 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-04-02 09:37:22 +00:00
parent de73100825
commit 16d8ff2dad
5 changed files with 76 additions and 53 deletions
+4 -3
View File
@@ -14,7 +14,8 @@
enum {
TRANSACTION_WRITTEN,
TRANSACTION_ABORTED,
TRANSACTION_ENDED
TRANSACTION_ENDED,
TRANSACTION_IDLE
};
typedef void (*transaction_notification_hook)(int32 id, int32 event,
@@ -22,7 +23,7 @@ typedef void (*transaction_notification_hook)(int32 id, int32 event,
#ifdef __cplusplus
extern "C" {
#endif
#endif
/* transactions */
extern int32 cache_start_transaction(void *_cache);
@@ -88,6 +89,6 @@ extern status_t file_map_translate(void *_map, off_t offset, size_t size,
#ifdef __cplusplus
}
#endif
#endif
#endif /* _FS_CACHE_H */
@@ -790,6 +790,7 @@
#define TRANSACTION_WRITTEN FSSH_TRANSACTION_WRITTEN
#define TRANSACTION_ABORTED FSSH_TRANSACTION_ABORTED
#define TRANSACTION_ENDED FSSH_TRANSACTION_ENDED
#define TRANSACTION_IDLE FSSH_TRANSACTION_IDLE
#define transaction_notification_hook fssh_transaction_notification_hook
+4 -3
View File
@@ -14,7 +14,8 @@
enum {
FSSH_TRANSACTION_WRITTEN,
FSSH_TRANSACTION_ABORTED,
FSSH_TRANSACTION_ENDED
FSSH_TRANSACTION_ENDED,
FSSH_TRANSACTION_IDLE
};
typedef void (*fssh_transaction_notification_hook)(int32_t id, int32_t event,
@@ -22,7 +23,7 @@ typedef void (*fssh_transaction_notification_hook)(int32_t id, int32_t event,
#ifdef __cplusplus
extern "C" {
#endif
#endif
/* transactions */
extern int32_t fssh_cache_start_transaction(void *_cache);
@@ -110,6 +111,6 @@ extern fssh_status_t fssh_file_map_translate(void *_map, fssh_off_t offset,
#ifdef __cplusplus
}
#endif
#endif
#endif /* _FSSH_FS_CACHE_H */