From ae6417be71abf3da25f7708d3ead977a03417e31 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 4 Dec 2010 11:15:20 -0500 Subject: New argument to transactional free functions, to specify whether we are about to retry --- include/types.h | 1 + include/urweb.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/types.h b/include/types.h index ac70c34f..e5edab96 100644 --- a/include/types.h +++ b/include/types.h @@ -51,6 +51,7 @@ typedef struct input *uw_input; #define TIMES_MAX 100 typedef void (*uw_callback)(void *); +typedef void (*uw_callback_with_retry)(void *, int will_retry); typedef void (*uw_logger)(void*, const char *fmt, ...); typedef struct { diff --git a/include/urweb.h b/include/urweb.h index 4816537a..f63b3f4c 100644 --- a/include/urweb.h +++ b/include/urweb.h @@ -39,7 +39,7 @@ failure_kind uw_begin(uw_context, char *path); failure_kind uw_begin_onError(uw_context, char *msg); void uw_login(uw_context); void uw_commit(uw_context); -int uw_rollback(uw_context); +int uw_rollback(uw_context, int will_retry); __attribute__((noreturn)) void uw_error(uw_context, failure_kind, const char *fmt, ...); char *uw_error_message(uw_context); @@ -228,7 +228,7 @@ uw_Basis_time uw_Basis_now(uw_context); uw_Basis_time uw_Basis_minusSeconds(uw_context, uw_Basis_time, uw_Basis_int); extern const uw_Basis_time uw_Basis_minTime; -void uw_register_transactional(uw_context, void *data, uw_callback commit, uw_callback rollback, uw_callback free); +void uw_register_transactional(uw_context, void *data, uw_callback commit, uw_callback rollback, uw_callback_with_retry free); void uw_check_heap(uw_context, size_t extra); char *uw_heap_front(uw_context); -- cgit v1.2.3