mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-07-24 10:26:10 +00:00
Change sync_init api call to pass information relevant for making
synchronization decisions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2305 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
e448603f2f
commit
e1b054ae0a
15
exec/evil.c
15
exec/evil.c
@ -76,7 +76,10 @@
|
||||
#include "sync.h"
|
||||
#include "evil.h"
|
||||
|
||||
static void clm_sync_init (void);
|
||||
static void clm_sync_init (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
|
||||
static int clm_sync_process (void);
|
||||
|
||||
@ -98,7 +101,10 @@ static struct sync_callbacks clm_sync_operations = {
|
||||
|
||||
static struct corosync_api_v1 *api = NULL;
|
||||
|
||||
static void sync_dummy_init (void)
|
||||
static void sync_dummy_init (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id)
|
||||
{
|
||||
}
|
||||
|
||||
@ -329,7 +335,10 @@ static int clm_nodejoin_send (void)
|
||||
/*
|
||||
* This is a noop for this service
|
||||
*/
|
||||
static void clm_sync_init (void)
|
||||
static void clm_sync_init (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ static struct sync_callbacks sync_callbacks;
|
||||
static int sync_processing = 0;
|
||||
|
||||
static void (*sync_next_start) (
|
||||
unsigned int *member_list,
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
|
||||
@ -176,7 +176,7 @@ static void sync_start_init (const struct memb_ring_id *ring_id)
|
||||
|
||||
static void sync_service_init (struct memb_ring_id *ring_id)
|
||||
{
|
||||
sync_callbacks.sync_init ();
|
||||
sync_callbacks.sync_init (my_member_list, my_member_list_entries, ring_id);
|
||||
totempg_callback_token_destroy (&sync_callback_token_handle);
|
||||
|
||||
/*
|
||||
@ -264,7 +264,7 @@ int sync_register (
|
||||
struct sync_callbacks *callbacks),
|
||||
|
||||
void (*next_start) (
|
||||
unsigned int *member_list,
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id))
|
||||
{
|
||||
|
@ -40,7 +40,10 @@
|
||||
#include "totemsrp.h"
|
||||
|
||||
struct sync_callbacks {
|
||||
void (*sync_init) (void);
|
||||
void (*sync_init) (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
int (*sync_process) (void);
|
||||
void (*sync_activate) (void);
|
||||
void (*sync_abort) (void);
|
||||
@ -53,7 +56,7 @@ int sync_register (
|
||||
struct sync_callbacks *callbacks),
|
||||
|
||||
void (*next_start) (
|
||||
unsigned int *member_list,
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id));
|
||||
|
||||
|
@ -80,7 +80,10 @@ enum sync_state {
|
||||
|
||||
struct service_entry {
|
||||
int service_id;
|
||||
void (*sync_init) (void);
|
||||
void (*sync_init) (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
void (*sync_abort) (void);
|
||||
int (*sync_process) (void);
|
||||
void (*sync_activate) (void);
|
||||
@ -113,7 +116,11 @@ static int my_processing_idx = 0;
|
||||
|
||||
static hdb_handle_t my_schedwrk_handle;
|
||||
|
||||
static struct processor_entry my_processor_list[128];
|
||||
static struct processor_entry my_processor_list[PROCESSOR_COUNT_MAX];
|
||||
|
||||
static unsigned int my_member_list[PROCESSOR_COUNT_MAX];
|
||||
|
||||
static size_t my_member_list_entries = 0;
|
||||
|
||||
static int my_processor_list_entries = 0;
|
||||
|
||||
@ -123,7 +130,7 @@ static int my_service_list_entries = 0;
|
||||
|
||||
static const struct memb_ring_id sync_ring_id;
|
||||
|
||||
static struct service_entry my_initial_service_list[128];
|
||||
static struct service_entry my_initial_service_list[PROCESSOR_COUNT_MAX];
|
||||
|
||||
static int my_initial_service_list_entries;
|
||||
|
||||
@ -229,7 +236,10 @@ static void sync_barrier_handler (unsigned int nodeid, const void *msg)
|
||||
}
|
||||
}
|
||||
|
||||
static void dummy_sync_init (void)
|
||||
static void dummy_sync_init (
|
||||
const unsigned int *member_list,
|
||||
unsigned int member_list_entries,
|
||||
const struct memb_ring_id *ring_id)
|
||||
{
|
||||
}
|
||||
|
||||
@ -438,7 +448,8 @@ static int schedwrk_processor (const void *context)
|
||||
|
||||
if (my_service_list[my_processing_idx].state == INIT) {
|
||||
my_service_list[my_processing_idx].state = PROCESS;
|
||||
my_service_list[my_processing_idx].sync_init ();
|
||||
my_service_list[my_processing_idx].sync_init (my_member_list, my_member_list_entries,
|
||||
&my_ring_id);
|
||||
}
|
||||
if (my_service_list[my_processing_idx].state == PROCESS) {
|
||||
my_service_list[my_processing_idx].state = PROCESS;
|
||||
|
@ -629,7 +629,10 @@ struct corosync_service_engine {
|
||||
const unsigned int *joined_list, size_t joined_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
enum cs_sync_mode sync_mode;
|
||||
void (*sync_init) (void);
|
||||
void (*sync_init) (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
int (*sync_process) (void);
|
||||
void (*sync_activate) (void);
|
||||
void (*sync_abort) (void);
|
||||
|
@ -206,7 +206,11 @@ static int cpg_node_joinleave_send (unsigned int pid, const mar_cpg_name_t *grou
|
||||
|
||||
static int cpg_exec_send_joinlist(void);
|
||||
|
||||
static void cpg_sync_init (void);
|
||||
static void cpg_sync_init (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id);
|
||||
|
||||
static int cpg_sync_process (void);
|
||||
static void cpg_sync_activate (void);
|
||||
static void cpg_sync_abort (void);
|
||||
@ -354,7 +358,10 @@ struct req_exec_cpg_downlist {
|
||||
|
||||
static struct req_exec_cpg_downlist g_req_exec_cpg_downlist;
|
||||
|
||||
static void cpg_sync_init (void)
|
||||
static void cpg_sync_init (
|
||||
const unsigned int *member_list,
|
||||
size_t member_list_entries,
|
||||
const struct memb_ring_id *ring_id)
|
||||
{
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user