version 1.200, 2008/07/10 18:08:11 |
version 1.201, 2008/07/16 11:51:14 |
|
|
void |
void |
client_register_global_confirm(global_confirm_cb *cb, void *ctx) |
client_register_global_confirm(global_confirm_cb *cb, void *ctx) |
{ |
{ |
struct global_confirm *gc, *first_gc; |
struct global_confirm *gc, *last_gc; |
|
|
/* Coalesce identical callbacks */ |
/* Coalesce identical callbacks */ |
first_gc = TAILQ_LAST(&global_confirms, global_confirms); |
last_gc = TAILQ_LAST(&global_confirms, global_confirms); |
if (first_gc && first_gc->cb == cb && first_gc->ctx == ctx) { |
if (last_gc && last_gc->cb == cb && last_gc->ctx == ctx) { |
if (++first_gc->ref_count >= INT_MAX) |
if (++last_gc->ref_count >= INT_MAX) |
fatal("%s: first_gc->ref_count = %d", |
fatal("%s: last_gc->ref_count = %d", |
__func__, first_gc->ref_count); |
__func__, last_gc->ref_count); |
return; |
return; |
} |
} |
|
|